我需要在我的应用程序上保证线程安全,你如何建议设计代码?
我希望method1
每5秒运行一次并连接到数据库,OnclickButton(object sender ,event e)
上的数据将连接数据库。
它是这样的:
method1()
{
// connect db
// do something
}
OnclickButton(object sender,event e)
{
// connect db
// do something 2
}
谢谢你们
答案 0 :(得分:1)
嗯,它有点广泛,但在我看来,你需要两个选择:
很好,在第一步之后,您将拥有ViewModel
带有绑定数据,可以从Model
更新或启动操作。您的ViewModel
可以以异步方式从Model
获取数据,并在UI线程中更新自己的属性。如果您使用的是Asynchronous Programming with Async and Await,那么如果您的方法从UI线程启动,您可以继续使用您的代码。如果您正在使用"旧式"然后,您可以使用Dispatcher
类来更新UI线程中的可绑定属性:
var newUsername = model.GetUserName(); // background thread
Application.Current.Dispatcher.BeginInvoke(
new Action(() => this.UserName = newUsername));