我已經建立了一個WCF主機,它在一個對象的實例上運行。當從WCF客戶端調用以下方法時,會拋出錯誤「調用線程無法訪問此對象,因爲不同的線程擁有它」。調用線程不能訪問這個對象,因爲不同的線程擁有它
public List<PrintQueueData> getPrintQueues()
{
List<PrintQueueData> resultQueues = new List<PrintQueueData>();
List<PrintQueue> queues = queueCollection;
foreach (PrintQueue q in queues)
{
// This throws an exception
resultQueues.Add(new PrintQueueData(q.HostingPrintServer.ToString(), q.Name));
// This does NOT throw any exceptions
resultQueues.Add(new PrintQueueData("1", "2");
}
return resultQueues;
}
我該怎麼辦才能糾正這個錯誤?
編輯:queueCollection是包含此方法的類的字段。
編輯:queueCollection是在這個類的開始處聲明的,它的類型是printqueue的列表,和它在這個方法中分配的相同。
編輯:我有一個計時器運行使用queueCollection,但是,我將Timer.Enabled設置爲false,錯誤仍然發生。
「queueCollection」從哪裏來? – 2011-03-11 01:16:49
您是在某處使用BackgroundWorker或線程嗎? – 2011-03-11 02:54:01
我有一個定時器運行使用queueCollection,但是,我仍然收到錯誤後設置Timer.Enabled爲false。 – mike9182 2011-03-11 14:34:18