using System;
using System.Linq;
using Microsoft.Practices.Prism.MefExtensions.Modularity;
using Samba.Domain.Models.Customers;
using Samba.Localization.Properties;
using Samba.Persistance.Data;
using Samba.Presentation.Common;
using Samba.Presentation.Common.Services;
using System.Threading;
namespace Samba.Modules.TapiMonitor
{
[ModuleExport(typeof(TapiMonitor))]
public class TapiMonitor : ModuleBase
{
public TapiMonitor()
{
Thread thread = new Thread(() => OnCallerID());
thread.SetApartmentState(ApartmentState.STA); //Set the thread to STA
thread.Start();
}
public void CallerID()
{
InteractionService.UserIntraction.DisplayPopup("CID", "CID Test 2", "", "");
}
public void OnCallerID()
{
this.CallerID();
}
}
}
我正在尝试向用 C# 制作的开源软件包添加一些东西,但我遇到了问题。上述(简化)示例的问题是,一旦调用 InteractionService.UserIntraction.DisplayPopup 我得到一个异常“调用线程无法访问此对象,因为不同的线程拥有它”。
我不是 C# 编码器,但我已经尝试了很多方法来解决这个问题,比如 Delegates、BackgroundWorkers 等等,但到目前为止没有一个对我有用。
有人可以帮我吗?