2017-09-27 30 views
-2

在Form1,有兩個功能,一個是按鈕的點擊事件我可以調用另一種形式的任務

private void bQuery_Click(object sender, EventArgs e) 
    { 
     string sPrefix = tbPrefix.Text.Trim(); 
     QueryAll(sPrefix); 
    } 

另一種是任務

async Task QueryAll(string sPrefix) 
    { 
    } 

現在我需要調用form1中的任務窗口2某些功能,如

  string prefix = "abc"; 

      frm = new form1(); 
      frm.ShowDialog(); 
      frm.Dispose(); 
      frm.QueryAll(sPrefix); 

我知道這種說法

frm.QueryAll(sPrefix); 

無法編譯,只是爲了顯示我想要做什麼,任何人都知道如何調用這個任務「QueryAll」?感謝您的幫助

+0

這不是一個任務,這是一個方法。具體來說就是一種私人方法 – john

+0

爲什麼不把這個共享函數放在一個單獨的類中,而不是綁定到一個特定的表單,因爲它現在被多個表單使用? – ADyson

回答

2

這將是任務

public Task QueryAll(string sPrefix) 
    { 
     return Task.Run(() => 
     { 
      //code here 
      var foo = sPrefix; 
     }); 
    } 

然後

frm = new form1(); 
frm.QueryAll(sPrefix).GetAwaiter().GetResult();