在我的WPF應用程序中,我想在非UI線程中做一些工作,以避免UI變得不響應。對於我這樣做:BeginInvoke()是否運行單獨的線程?
var caller = new AsyncMethodCaller<Pattern>(this.SetPatternType);
caller.BeginInvoke(_patterns, null, null);
和委託方被定義爲,
public delegate void AsyncMethodCaller<in T>(IEnumerable<T> data);
我的問題是:
是否BeginInvoke()
創建一個新的線程,並在其回調SetPatternType
運行?如果是這樣,這個線程持續多久?
這是很好的做法,一般?如果沒有,它有什麼問題?我可能面臨的潛在問題是什麼?
我使用C#4.0和Visual Studio 2010中
編輯:
此外,我需要更多關於這幾個原則:
當我應該創建一個新的線程,我和時我應該使用BeginInvoke()
嗎?何時應該使用DispatcherObject.Dispatcher.BeginInvoke()
對象?
你用什麼.NET版本? – PVitt 2011-04-07 08:09:27
@PVitt:我想...我使用.NET 4.0,因爲我使用Visual Studio 2010. – Nawaz 2011-04-07 08:11:10