随笔分类 - C#
摘要:对于窗体程序,使用基于任务的异步模式需要用到Task类,下面示例下非常简单的用法。 1.创建一个拥有异步方法的类 该类拥有一个异步方法DoSomthingAsync,根据微软建议的命名规则该方法要带Async后缀 当调用该方法的时候,就是异步执行的。为了在该方法执行完成后做进一步处理,需要写一个任务
阅读全文
摘要:代码如下: 演示如下:
阅读全文
摘要:委托 声明一个委托类(型): 这里声明了一个委托类,叫Comparison(Comparison等级上是与String、Button等一样的,是类,非变量),用Comparison可以创建实例(就像用String str = new String() 创建str实例一样),一般我们把这个实例也叫做“
阅读全文
摘要:https://docs.microsoft.com/zh-cn/dotnet/standard/events/how-to-raise-and-consume-events 第一个示例演示如何引发和使用一个没有数据的事件。 它包含一个名为 Counter 类,该类具有一个名为 ThresholdR
阅读全文
摘要:C# lock 关键字的一些理解 问题1:谁是锁? lock 这个关键字,并不是“锁”,真正的“锁”是那个被lock的Object类型的“对象”,请注意,这里为“对象”加了双引号着重强调被lock的是对象类型。 问题2:这个锁有什么用? 在C# lock关键字定义如下: 根据lock的定义,它有两种
阅读全文
摘要:读取不完就一直等待,读完了就立刻走,之前都是设置一个溢出时间,不管是不是早就读取完了都要在这等着,有一定的时间浪费。 注意,用之前要设置好SerialPort类的TimeOut属性:
阅读全文
摘要:如下代码: 在异步线程中操作Message变量,实测可行; 注意:(1)如果主线程不加延时的话Message变量还是空的,说明此时异步线程并未执行到赋值变量。 (2)这种做法不是线程安全的,如果有多个线程同时修改Message的话会造成数据混乱,非要这么使用的话最好在Message上加Look
阅读全文