点击按钮后,我会启动一个线程:
Thread myThread = new Thread(TestThread);
myThread.IsBackground = true;
myThread.Start();
线程方法内部:
// Start stopwatch
var watch = Stopwatch.StartNew();
// Our method
HelperMethods.Mymethod(
"19-04-2015",
"20-04-2015",
Properties.Settings.Default.username,
Properties.Settings.Default.password
);
// stop it
watch.Stop();
// Get number of ellapsed milliseconds
var elapsedMs = watch.ElapsedMilliseconds;
TimeSpan t = TimeSpan.FromMilliseconds(elapsedMs);
string answer = string.Format(
"{0:D2}h:{1:D2}m:{2:D2}s:{3:D3}ms",
t.Hours,
t.Minutes,
t.Seconds,
t.Milliseconds
);
MessageBox.Show("Done " + answer);
昨天我启动了这个线程并离开了电脑(Windows+L)。
第二天,我等着看上面的消息框显示“完成”。
但即使 Mymethod
在那段时间内必须终止,它也没有出现。
Mymethod
中的整个代码都在 try/catch
内部,并记录发生在该方法内部的异常。奇怪的是,没有记录任何异常,表明我的程序意外终止或其他问题。
最后一条记录的消息(注意:我只记录错误)来自前一天晚上9点左右。
之后,没有任何迹象......
我现在处于一个奇怪的情况...这里可能发生了什么?
有什么想法吗?
可悲的是,当我回来时,我终止了应用程序,无法检查 Mymethod 是否仍在运行,但它不应该在运行,因为它已经有足够的时间来完成。