代碼如下,main函式和test函式均捕獲不到例外
public delegate bool AsyncDelegate(int loop);
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
try
{
Test();
}
catch(Exception err)
{
}
}
public static void Test()
{
AsyncDelegate dlgt = new AsyncDelegate(LongRun);
IAsyncResult ar = dlgt.BeginInvoke(1000, null, null);
while (ar.IsCompleted == false)
{
Thread.Sleep(100);
}
try
{
bool test=dlgt.EndInvoke(ar);
}
catch
{
Console.WriteLine("發生錯誤");
}
}
public static bool LongRun(int loop)
{
for (int i = 0; i < loop; i++)
{
for (int j = 0; j < loop; j++)
{
throw new Exception("long run 發生錯誤");
}
}
return true;
}
uj5u.com熱心網友回復:
如果是C# 6.0或者以上,在ansync里面直接用try catch就可以uj5u.com熱心網友回復:
我用的 .net framwork 4.0,有什么好辦法嗎uj5u.com熱心網友回復:
我用的 .net framwork 4.0,有什么好辦法嗎uj5u.com熱心網友回復:
有啟動子執行緒,然后父執行緒又去死回圈阻塞,然后還要整一大堆繁瑣的語法來充數,這是從哪里學的編程啊?洗掉掉多余的代碼,老實地寫一個順序代碼,不用制造矛盾。
uj5u.com熱心網友回復:
我的實際場景是多執行緒呼叫一個讀取資料庫的函式,讀取資料庫的函式回傳值為datatable。上面的例子,是我為了提問簡化的。不知道這種多執行緒帶回傳值讀取資料庫的場景,您有沒有什么好的思路可提供呢?我是才接觸多執行緒
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/14569.html
標籤:C#
上一篇:dicom求助
