2017-09-27 34 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();