私は待っていたいメソッドを持っていますが、私はこの呼び出しメソッドを呼び出すことができ、それを待っていると考えてドミノ効果を引き起こしたくありません。この親メソッドで非同期修飾子を使用せずに非同期メソッドを待つことはできますか?
public bool Save(string data)
{
int rowsAffected = await UpdateDataAsync(data);
return rowsAffected > 0;
}
私が呼んでいる:私はSave()
用メソッド署名に「非同期」を配置する必要があり、その後、私ができるので
public Task<int> UpdateDataAsync()
{
return Task.Run(() =>
{
return Data.Update(); //return an integer of rowsAffected
}
}
これは動作しませんたとえば、私はこの方法を持っています返信bool
私はそれをTask<bool>
にしなければならないが、私はSave()
メソッドを待っている誰も望んでいない。
私はaswaのようなコードの実行を中断することができますか、何らかの形で非同期修飾子なしでこのコードを待っていますか?
あなたが私のスレッドをブロックした 'Save'メソッドにアクセスできるようにして、' Task'で呼び出しをラップするように強制すると、かなり迷惑になります。 。ただ言って。 –