草庐IT

c# - 如何使用 Roslyn 检测脚本(而不是文档)中未使用的导入?

我正在编写一个系统来处理作为NodaTime单元测试编写的片段,因此我可以将这些片段包含在文档中。我有一个firstpass工作,但我想整理代码。处理片段时需要做的一件事是确定该片段实际需要哪些using指令。(单个源文件中可以有多个片段,但每个片段将单独出现在文档中-我不希望从一个片段中导入影响另一个片段。)工作代码处理Document实例-我为每个片段创建一个单独的Document包含一个方法和所有潜在的导入,添加它到项目中,然后删除不必要的using指令,如下所示:privateasyncstaticTaskRemoveUnusedImportsAsync(Documentdoc

C# Winform ProgressBar 和 BackgroundWorker

我有以下问题:我有一个名为MainForm的表单。我有一个很长的手术要在这张表格上进行。在这个漫长的操作过程中,我需要在MainForm之上显示另一个名为ProgressForm的操作。ProgressForm包含一个进度条,需要在长时间操作发生时更新。长操作完成后,ProgressForm应该自动关闭。我写了下面的代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Threading;namespaceClassLibrary{pub

C# 退出 using() block ,线程仍在作用域对象上运行

如果线程正在运行通过退出usingblock释放的对象中的方法,线程会发生什么情况?示例:using(SomeObjectobj=newSomeObject()){obj.param=10;ThreadnewThread=newThread(()=>{obj.Work();});newThread.Start();}...obj.Work()在新线程上运行,但obj是一个IDisposable对象,通常会在usingblock退出时释放。如果线程在usingblock结束后继续运行会怎样?只有在线程完成后对象才会被释放吗?还是会断线?谢谢。 最佳答案

C# 线程 : Using Monitor. 等待、锁定和 PulseAll

我是CSharp和线程的新手。为了熟悉Monitor.Wait、Monitor.lock和Monitor.PulseAll,我构建了一个场景描述如下。“一个FootballGround由不同的球队共享用于练习目的。任何时候只有一个球队可以使用field进行练习。一个团队可以使用field进行30分钟的练习。一旦时间达到25分钟,它应该向其他球队发出信号地面将在5分钟后释放的线程。本地面潮湿时(枚举有三个值free、alloted、wet)不允许任何团队锁定地面,所有人都应等待10分钟”老实说,我不知道如何将描述转化为实际编码。根据我的理解,我设计了大纲。namespaceThreadi

c# - 使用 C# 和 Sheets API v4 更新单元格

有没有人有一个很好的C#示例来使用v4API更新单元格?我有来自使用GoogleSheetsAPIv4的开发者网站的获取单元格值c#示例。我正在尝试修改示例以更新值为“Tom”的单元格。我卡在SpreadSheets.Values.Update的设置上。usingGoogle.Apis.Auth.OAuth2;usingGoogle.Apis.Sheets.v4;usingGoogle.Apis.Sheets.v4.Data;usingGoogle.Apis.Services;usingGoogle.Apis.Util.Store;usingSystem;usingSystem.Col

c# - 如何使用 NPOI 更改单元格颜色

usingNPOI.XSSF.UserModel;usingNPOI.XSSF.Model;usingNPOI.HSSF.UserModel;usingNPOI.HSSF.Model;usingNPOI.SS.UserModel;usingNPOI.SS.Util;(...)XSSFWorkbookhssfwb;using(FileStreamfile=newFileStream(@"D:\VB\XLSXtestecomNPOI\XLSX1\Book1.xlsx",FileMode.Open,FileAccess.Read)){hssfwb=newXSSFWorkbook(file);

c# - 使用语句和 try-catch()-finally 重复?

using(...)语句是try{}finally{}的语法糖。但是如果我有如下的using语句:using(FileStreamfs=File.Open(path)){}现在我想捕获打开这个文件可能导致的异常(这是相当高风险的代码,因为它可能会因环境而失败),但是如果我在里面写try-catch会不会重复?当代码被编译为IL时,我认为当代码被JITted时重复将被删除?但是,我想捕获打开文件可能导致的异常(所以我应该将try-catch包装在using语句的范围之外),以及我在usingblock中所做的任何异常,所以我应该添加block内的try-catch。这似乎是我对CLR可能

c# - 串口通信 : polling serial port vs using serial port DataReceived event

我只是在回顾我在CF2.0上用C#编写的与串行端口通信的一些代码。我没有使用DataReceived事件,因为它不可靠。MSDNstatesthat:TheDataReceivedeventisnotgauranteedtoberaisedforeverybytereceived.UsetheBytesToReadpropertytodeterminehowmuchdataislefttobereadinthebuffer.我用read()轮询端口,并有一个委托(delegate)在读取数据时处理数据。我还在某处读到“轮询不好”(没有给出解释)。知道轮询为什么不好吗?除了通常的线程警告

c# - 如何确定是否正在处理 .NET 异常?

我们正在研究C#中的一种编码模式,在该模式中,我们希望对一个特殊类使用“using”子句,该类的Dispose()方法根据“using"正文正常退出或异常退出。据我所知,CLR会跟踪当前正在处理的异常,直到它被“捕获”处理程序使用为止。但是,尚不完全清楚此信息是否以任何方式公开以供代码访问。您知道它是否存在吗?如果存在,如何访问它?例如:using(varx=newMyObject()){x.DoSomething();x.DoMoreThings();}classMyObject:IDisposable{publicvoidDispose(){if(ExceptionIsBeingH

c# - 类似于 "using"的东西,它会创建一个对象并在完成后调用它的方法,但让我在两者之间做我想做的事

我正在使用Lidgren,对于我发出的每一种新消息,我最终都会编写相同类型的代码。我正在创建NetOutgoingMessage的实例,对其运行各种赋值调用,然后在完成后发送它。创建和发送是一样的,所以我想写一个包装器来为我做这件事,但它是一个sealed类而且它不是IDisposable。我正在做的是这样的:NetOutgoingMessageom=server.CreateMessage();om.Write(messageType);om.Write(data1);om.Write(data2);server.SendMessage(om,server.Connections,N