C#多线程Task:不能对已完成的任务调用 Start。

[软件开发] 季雨林 2021/10/24 16:14:11

今天改写了一个以前的多线程桌面程序,为其增加了暂停和停止功能,然后也就想当然的需要重启,却发现重启过程中遇到这个报错:不能对已完成的任务调用 Start。


对于已经完成的子线程,即使将其赋值为null,也依然无法重新启动。


----------------------------------------

20220410补充解决方案:

1,对于task,单一task对象不能重复使用,因此这里可以考虑不使用全局静态task。

2,对于task的取消控制,也不再使用全局静态变量,替换为在任务开始按钮事件里进行初始化,在停止按钮里用完重置为null,这样就可以实现重新开启task的控制了。



原文地址: https://www.opengps.cn/Blog/View.aspx?id=933 文章的更新编辑依此链接为准。欢迎关注源站原创文章!

评论

暂无评论!

发表评论:

用于接收作者回复信息
点击更换验证码 - openGPS提示