2016-05-29 4 views
-2

を働いていない待つ:ここC#が非同期Iは以下のないボタンがあり

private void button3_Click_1(object sender, EventArgs e) 
{ 
doStuff(); 
} 

は私のdoStuff機能である:

private async Task doStuff() 
{ 
var nat = new NatDiscoverer(); 

// we don't want to discover forever, just 5 senconds or less 
var cts = new CancellationTokenSource(5000); 
var device = await nat.DiscoverDeviceAsync(PortMapper.Upnp, cts);    
} 

当初、私はエラーを得ていたが、私は」didnのため、それがでしたdoStuff()関数に「非同期タスク」があります。

現在、私はもう赤い線はありませんが、関数doStuff()のbutton3_Clickイベントの下に緑色の線があります。

「待機」を追加することを検討していますが、doStuff()の前に待機を追加するとエラーが発生します。

私はこれを正しく使用していますか?これを正しく動作させるにはどうすればよいですか?

私は、オープンポートを一覧表示しようとしているOpen.NAT dllを使用しています。

私は取得しています警告がある: asyncawaitお電話、ボタンのクリックメソッド作るコールの残りの部分に

おかげで、

+0

「エラーが発生しました」< - * what *エラー? – wal

+0

'Page.RegisterAsuncTask(doStaff);' –

答えて

2

を「待つ」演算子を追加することを検討し

private async void button3_Click_1(object sender, EventArgs e) 
{ 
    await doStuff(); 
} 
+0

もし私がそれを行うなら、私はまだ警告のある緑色のスイフトを持っています: 残りの呼び出しに「await」演算子を追加することを検討してください – RobertC

+0

@RobertC '残りの呼び出し'' - それをどうやって行けばいいの?それはそれを待っていますか? – wal

+0

"doStuff()"の下に警告が表示されますので、そうです: プライベート非同期void button3_Click_1(オブジェクト送信者、EventArgs e) { await doStuff()<-----これはswiggliesを持っています; } – RobertC

関連する問題