我有一個程序可以通過同時使用後臺線程從7個不同的PLC讀取數據。使用7個不同的讀取,我希望寫入三個不同的SQL表。使用Async/Await使用三個任務寫入SQL
public static async void readReady()
{
if (Read1_complete && Read2_complete && BCS_complete == true)
{
await Task.Run(() => W1_SQL_Write.SQL_Write_Enabled());
}
if (Read3_complete && Read4_complete && BCS_complete == true)
{
await Task.Run(() => W2_SQL_Write.SQL_Write_Enabled());
}
if (Read5_complete && Read6_complete && BCS_complete == true)
{
await Task.Run(() => W3_SQL_Write.SQL_Write_Enabled());
}
}
的7個讀取方法調用此方法readReady()
,如果其他讀取標誌設置,三個SQL寫任務之一被啓動。
我是新來的異步和等待任務。我想知道這是否是一種調用不同方法寫入SQL的好方法?第二個和第三個「if」語句是否等待第一個返回,當第一個「if」語句在手之前被稱爲true時?
所有三種寫入方法可能同時實現,這是否會導致一些錯誤,或者是異步並等待執行的方式?
不要使用'async void',它只能用於事件處理程序。 –
明確地比較真實(BCS_complete == true)幾乎不是一個好主意。 – EJoshuaS
我不確定如果沒有檢查表示讀取已完成的單個標誌的條件,還有什麼其他方法可以解決。你能幫我發表一些不同的想法嗎? – TheException