那天看到phoenix大大的
ASP.NET C# 非同步程序(多執行緒)寄送郵件 (適合大量郵件)
覺得很好玩
所以我也來簡化code試玩一下
那天看到phoenix大大的
ASP.NET C# 非同步程序(多執行緒)寄送郵件 (適合大量郵件)
覺得很好玩
所以我也來簡化code試玩一下
public partial class Form1 : Form {
public delegate void AsynDosothing();
public Form1() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
AsynDosothing ad = new AsynDosothing(writeToFile);
AsyncCallback asc = new AsyncCallback(sothingCallBack);
IAsyncResult iar = ad.BeginInvoke(asc, ad);
MessageBox.Show("begin asyn");
}
protected void writeToFile() {
for (int i = 0; i < 20; i++) {
System.Threading.Thread.Sleep(1000);
File.AppendAllText(@"D:\test.txt", DateTime.Now.ToString());
}
}
protected void sothingCallBack(IAsyncResult iar) {
if (iar.IsCompleted) {
MessageBox.Show("OK");
}
}
private void button2_Click(object sender, EventArgs e) {
writeToFile();
MessageBox.Show("OK");
}
}
寫一段很小很短的code來測試效果
在winform上面
buttin1按下去會另外跑一個Thread所以不會鎖死不能動
button2按下去就要等20秒了
程式關掉後就馬上停止,並不會繼續跑下去
在webform上就算程式關掉還是會繼續跑下去
我想可能是在webform上跑是用iis的thread再跑
webform關掉並不會把iis的thread關掉所以會繼續跑吧…