奇怪的Task:Task启动Action后 再次创建会失效 !
发布日期:2021-10-02 00:05:36 浏览次数:1 分类:技术文章

本文共 653 字,大约阅读时间需要 2 分钟。

自从有了task以后很少再启动线程Thread了。贴下代码:

比如以前要写成这样:

public void StartMonitor(){      t = new Thread(ParseReceiveData);//创建了线程还未开启      t.IsBackground = true;      t.Start();        isStarted = true; }private void ParseReceiveData() {            int len = 112;     while (isStarted){......}}

现在只要写成这样就好了。

//方式1Task.Factory.StartNew(ParseReceiveData);//方式2Task.Run(()=>ParseReceiveData());

用了很久了,今天碰着问题了。当点击停止以后,再次点击start时,代码不能再次执行ParseReceiveData方法了。

天哪,这难道是bug!!不过用了这么久没有把task,开了,在开过,确实也是第一次这么用结果就触雷了。

尤其是刚开始代码还是这样:parseTask = Task.Factory.StartNew(ParseReceiveData); 那基本上就2次就会有一次

不执行方法。结果一查才知道,Task 就是这样的。以后要想重复执行方法,请使用Timer。

以后记住了! Task 更多使用场合:搭配 await 吧。别哪哪都用!

 

转载地址:https://blog.csdn.net/jacky_zh/article/details/106690364 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C#中问号(?)的那些事 (?: ?? ?.)
下一篇:【Linux】Linux命令详解

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月01日 20时10分14秒