我有一个程序对数据库进行大量调用,然后更新 UI。这会导致问题,因为在大多数情况下,这意味着 UI 没有响应。因此,我决定将访问数据库和更新 UI 的函数调用放在单独的线程中,所以现在我有这样的东西:
private delegate void CallAsyncDelegate();
private void CallGetDBValues()
{
// Call GetDatabaseValues in new thread
CallAsyncDelegate callGetDatabaseValues = new
CallAsyncDelegate(GetDatabaseValues);
BeginInvoke(callGetDatabaseValues);
}
private void GetDatabaseValues()
{
// Get lots of data here
// Update UI here
}
...
但是,它似乎对 UI 没有任何影响。我在某处读到,如果要在单独的线程中运行的代码需要更新 UI,那么这就是应该进行调用的方式 - 这是正确的吗?难道我做错了什么?