Thread间隔一秒执行,帮忙看看这段代码安全吗?

soamu 2020-09-08 08:28:31
每次用户提交后,都会启动一个线程,(会很多人提交),每一秒执行一次任务。直到任务执行完成。退出循环。。但是我不确定当前的这个线程是否终止了。或者有什么办法手动终止呢?



protected void Button1_Click(object sender, EventArgs e)
{

doService ds = new doService(this.TextBox1.Text,"2","3");

Thread ts = new Thread(new ThreadStart(ds.SentMsg));
ts.Start();


}



public class doService
{
public string IbcID { get; set; }
public string TimeSpan { get; set; }
public string OrderID { get; set; }
public doService(string ibcid, string timespan, string orderid)
{
IbcID = ibcid;
TimeSpan = timespan;
OrderID = orderid;
}

public void SentMsg()
{
bool loop = true;

int i = 0;
while (loop)
{

i++;
string ok = IbcID + "_" + TimeSpan + "_" + OrderID;

System.IO.File.WriteAllText("d:\\" + IbcID + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt", ok);

if (i == 10) { loop = false; }

Thread.Sleep(2000);
}

}
}
...全文
3793 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
八爻老骥 2020-09-08
  • 打赏
  • 举报
回复
引用 2 楼 soamu 的回复:
[quote=引用 1 楼 icoolno1的回复:]没什么问题。不抛异常的话,i肯定能走到10的,抛异常的话,程序直接报错退出,也没问题。

我问的是,进程会不会自动结束。。[/quote]

进程是进程,你这是Webform吧,Webform有自己的异常处理机制,进程不会因为这个线程错误而结束的。这个线程也不会影响页面的线程,事件里启动的这个线程跟页面线程同步进行,里边内容执行完就结束了,如果出错也只会在后台处理,也不会影响整个系统的使用。
soamu 2020-09-08
  • 打赏
  • 举报
回复
引用 1 楼 icoolno1的回复:
没什么问题。不抛异常的话,i肯定能走到10的,抛异常的话,程序直接报错退出,也没问题。
我问的是,进程会不会自动结束。。
八爻老骥 2020-09-08
  • 打赏
  • 举报
回复
没什么问题。不抛异常的话,i肯定能走到10的,抛异常的话,程序直接报错退出,也没问题。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧