c#线程声明
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#线程声明,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1096字,纯文字阅读大概需要2分钟。
内容图文
![c#线程声明](/upload/InfoBanner/zyjiaocheng/762/bb1bd5f6add742eaa53f489e9fd71a68.jpg)
我看到以下声明:
ThreadStart myThreadDelegate = new ThreadStart(Work.DoWork);
Thread myThread = new Thread(myThreadDelegate);
myThread.Start();
他们可以简化如下吗?
Thread myThread = new Thread(new ThreadStart(Work.DoWork));
myThread.Start();
如果是,那么第二种方法是什么?每种方法的优缺点是什么?
解决方法:
它甚至可以简化为:
var myThread = new Thread(Work.DoWork);
myThread.Start();
没有太大的区别.在您的第一个示例中,委托实例获取一个名称myThreadDelegate,理论上可以在该方法中稍后使用(可能是其他内容).
如果一个人喜欢一个含有多个级别的长表达式,或者许多带有temporaray变量的小表达式然后被组合,那么这主要是一个品味问题.
在任何情况下,在我看来,使用方法组的隐式转换比在Work.DoWork中更简单,而不是编写新的ThreadStart(Work.DoWork).看到句子C#2.0提供了一种更简单的方法来编写How to: Declare, Instantiate, and Use a Delegate (C# Programming Guide)中的前一个声明.这种更简单的方法正式称为方法组转换.
有关var关键字的信息,请参阅Implicitly Typed Local Variables (C# Programming Guide).
当然,你的例子中的终极单行将是:
(new Thread(Work.DoWork)).Start();
在这种情况下,您甚至不会获得对新线程的引用(变量)(实例方法Start()返回void).
内容总结
以上是互联网集市为您收集整理的c#线程声明全部内容,希望文章能够帮你解决c#线程声明所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。