Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Xamarin.Android中的按钮上调用异步非lambda函数_C#_.net_Xamarin_Mobile Development - Fatal编程技术网

C# 如何在Xamarin.Android中的按钮上调用异步非lambda函数

C# 如何在Xamarin.Android中的按钮上调用异步非lambda函数,c#,.net,xamarin,mobile-development,C#,.net,Xamarin,Mobile Development,例如,我已经编写了一些异步函数,希望在单击按钮时调用它。像这样: static async Task<string> ParseSth(string URL) { ... } 静态异步任务ParseSth(字符串URL){…} 我想在单击此按钮时调用它: FindViewById<Button>(Resource.Id.ButtonParse).Click += ... findviewbyd(Resource.Id.buttonpass)。单击+=。。。 在谷歌

例如,我已经编写了一些异步函数,希望在单击按钮时调用它。像这样:

static async Task<string> ParseSth(string URL) { ... }
静态异步任务ParseSth(字符串URL){…}
我想在单击此按钮时调用它:

FindViewById<Button>(Resource.Id.ButtonParse).Click += ...
findviewbyd(Resource.Id.buttonpass)。单击+=。。。

在谷歌或youtube上,我只找到了关于lamda表达式的资料。那么,如何做到这一点呢?

您可以使您的单击处理程序异步,然后在那里用wait调用ParseSth。只需知道,您的方法引发的任何异常都不会被捕获,因为您正在向void方法添加async

private async void button_Click(object sender, EventArgs e)
{
    await ParseSth(myTextBox.Text); // Any exception thrown here will be lost
}

一些MVVM框架的另一个解决方案是将一个异步命令绑定到按钮单击。

您可以使单击处理程序异步,然后使用wait从那里调用ParseSth。只需知道,您的方法引发的任何异常都不会被捕获,因为您正在向void方法添加async。使用一些MVVM框架的另一个解决方案可能是将异步命令绑定到您的按钮单击。谢谢,我尝试了您所说的方法,效果很好,您能否编写它来回答我的问题?我想把它标记为答案