我有一個包含文件名的列表視圖。我有另一個列表視圖,其中包含可能的操作來重命名這些文件。最後,我有一個顯示結果預覽的標籤。當我想要顯示預覽的每個列表中選擇一個對象時。您只能選擇一個文件,但只能選擇一個或多個操作。我使用WPF/Xaml作爲我的UI。我選擇用線程執行預覽。線程問題「調用線程不能訪問此對象,因爲不同的線程擁有它」。任何解決方案
這裏是我的代碼的一部分:「因爲不同的線程擁有它調用線程不能訪問該對象」
private Thread _thread;
public MainWindow()
{
InitializeComponent();
_thread = new Thread(DoWork);
}
public void DoWork()
{
while (true)
{
FileData fileData = listViewFiles.SelectedItem as FileData; // ERROR HERE
if (fileData != null)
{
string name = fileData.FileName;
foreach (var action in _actionCollection)
{
name = action.Rename(name);
}
previewLabel.Content = name;
}
Thread.Sleep(1000);
}
}
private void listViewFiles_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
_thread.Start();
}
在運行時出現錯誤對FileData fileData = listViewFiles.SelectedItem作爲FileData;線。你知道我該怎麼做?
http://stackoverflow.com/search?q=The+calling+thread+cannot+access+this+object+because+a+different+thread+owns+it –