注: これが Xamarin に当てはまるかどうかはわかりません。間違っている場合は修正してください。
基本的に、関数が非同期ではないことが問題です。関数定義は次のようになっていると思います。
public void MyFunction(MyObject arg, etc)
{
var testObject = new ParseObject ("TestObject");
testObject ["foo"] = "bar";
await testObject.SaveAsync();
}
await
言語で後で導入され、古いコードを壊さないようにするasync
ために、メソッドに修飾子を追加して使用できるようにする必要がありましたasync
。このような:
//note ▼▼▼▼▼ the async modifier in the function declaration
public async void MyFunction(MyObject arg, etc)
{
var testObject = new ParseObject ("TestObject");
testObject ["foo"] = "bar";
await testObject.SaveAsync();
}
それはコンパイルされます。ただし、別の改善方法があります。Task
代わりにクラスを戻り値として使用できます。これにより、他のメソッドがメソッドで使用できるようawait
になります。このような:
//note the ▼▼▼▼ new return value
public async Task MyFunction(MyObject arg, etc)
{
var testObject = new ParseObject ("TestObject");
testObject ["foo"] = "bar";
await testObject.SaveAsync();
}
これは、他の人が次のようなことができることを意味します。
await MyFunction(arguments);