static void Main(string[] args)
{
int count = 5;
//不安全写法
Task.Run(() =>
{
Thread.Sleep(1000);
Console.WriteLine("Main1_" + count);
});
//安全
Test1(count);
//安全
Task.Factory.StartNew((c) =>
{
Thread.Sleep(1000);
Console.WriteLine("Main2_" + c);
}, count);
//不安全
new Action(() =>
{
Thread.Sleep(1000);
Console.WriteLine("Main3_" + count);
}).BeginInvoke(null, null);
//安全
new Action<int>((c) =>
{
Thread.Sleep(1000);
Console.WriteLine("Main4_" + c);
}).BeginInvoke(count, null, null);
count = 10;
Console.WriteLine("ReadKey...");
Console.ReadKey();
}
static void Test1(int count)
{
Task.Run(() =>
{
Thread.Sleep(1000);
Console.WriteLine("Test_" + count);
});
}
相关文章
- 10-011.import和include区别 2.NSLog 和printf区别 3.创建对象做的事情 4. 类和对象方法比较 5 匿名对象优缺点 6. 封装 7.作用域范围 8.id和instancetype 9.自定义构造方法规范 10.nil和Nil及NULL、NSNull区别
- 10-01c# 中的委托以及匿名方法lambda
- 10-01C# DataTable 和List之间相互转换的方法
- 10-01c#隐藏和重写基类方法的异同
- 10-01用自定义定界符和C#中一些非常大的字段值解析文本的最快方法是什么?
- 10-01C#中的分部类和分部方法:partial
- 10-01C#方法中参数ref和out的解析
- 10-01C#总结---方法的out参数和ref参数
- 10-01C#中方法中 ref 和 out的使用
- 10-01互联网云生态下DDOS安全产品的一些考虑和测试方法(一)