正在制作一个安卓应用程序,所以只要我运行一个线程
Thread server = new Thread(new ThreadStart(serverHandle));
server.Start();
该应用程序崩溃而没有任何错误消息,它只发生在发布模式下,调试时一切似乎都很好
它仅在服务器句柄为空时才有效,但如果里面有这样的东西
private void serverHandle()
{
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.SetMessage("test");
alert.Show();
}
它停止工作任何帮助,为什么会这样?
AlertDialog
只能在UI Thread中使用。请参阅如何在正在运行的线程中显示警报对话框?。
因此,如果您希望代码正常工作,可以像这样修改它:
Thread server = new Thread(new ThreadStart(()=> {
//run the AlertDialog in the UI Thread.
RunOnUiThread(() => {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.SetMessage("test");
alert.Show();
});
}));
server.Start();