apartments

    -1热度

    1回答

    我正在编写一个Wcf服务库并希望加载一个非托管的com DLL。在COM DLL线程模型不设置,只有运行在主STA threading model 在WCF服务,所以它是一个单线程的旧式组件,我已经设置了公寓为STA现在like ,当我尝试创建COM组件的情况下,当我调试COM DLL和它抛出一个错误RPC_E_WRONG_THREAD给出了一个例外 System.Runtime.InteropS

    1热度

    2回答

    我很难在outprocess环境中理解COM公寓。 基本上我不明白为什么客户需要拨打CoInitializeEx在公寓注册它自己的线程。 我可以理解生活在STA或MTA中的服务器线程和服务器线程所使用的对象。但我不明白为什么客户端应该关注这一点。 每份文件/指南都说客户必须致电CoInitializeEx在公寓注册。这是否意味着服务器保持跟踪客户端的线程? 或者公寓数据也分配在客户端进程中?

    -1热度

    1回答

    我已经创建了一个新的DUnit测试项目,我试图在其开始时设置多线程单元。问题是,在一台计算机公寓类型改变。现在 program COMApartment; {$IFDEF CONSOLE_TESTRUNNER} {$APPTYPE CONSOLE} {$ENDIF} uses Winapi.ActiveX, TestuApartmentInfo in 'TestuA

    0热度

    1回答

    我测试了一个自定义的类工厂,将使用coregisterclassobject注册,我注意到它会导致线程问题。 我创建了一个测试com对象并创建了它的一个实例,并且所有事情都按预期行事。这是一个inproc服务器,在注册表中,它的ThreadingModel是“Apartment”。如果我使用apartment_threaded调用CoInitializeEx,它会在同一个线程上创建对象,如果我使用

    0热度

    1回答

    我试图使用CoRegisterClassObject来定制我加载的DLL的COM对象在他们的方式。我正在尝试一些解决当线程的公寓类型与com对象不匹配时遇到的问题。基本思想是,由于使用coregisterclassobject在创建com对象时会忽略注册表,所以我需要确保STA对象在STA线程中创建,并且对于MTA对象也是如此。以下是我写作的一个样本,作为概念证明,并不总是按照我的预期行事。 LP

    3热度

    1回答

    我正在使用VOIP客户端(窗口窗体)在打电话或收到呼叫时打开浏览器窗口(ExtendedWebBrowser)。通常它工作正常,但如果计算机进入休眠模式,然后唤醒程序将具有以下错误崩溃: "System.Threading.ThreadStateException crossed a native/managed boundary Message=ActiveX control '885

    0热度

    1回答

    当我创建Thread时,我可以选择在启动它之前明确设置其COM组件状态。举例来说: // using System.Threading; var thread = new Thread(…); thread.SetApartmentState(ApartmentState.STA); thread.Start(); 但是,当我创建一个AppDomain并加载一些代码进去,我似乎已经超过线

    2热度

    1回答

    进程COM服务器我有一个出进程内COM(ATL)服务器的已创建为自由线程(CComMultiThreadModel) 我对如何,涉及到的重入略有困惑调用我的对象,例如我假设我可以同时从多个客户端调用并同时处理这些请求,但似乎(根据我的日志)每个请求都被序列化。 我错过了什么,是否简单地创建一个类作为MTA意味着它真的是或有其他事情我必须做。请注意,我在这里指的是多个进程都在进行并发调用,而不是单个

    0热度

    2回答

    即使租户已存在,执行Apartment::Tenant.switch!("tenant_name")时出现错误。 当我运行公寓:: tenant_names,它返回数组包含["murah5","rahmatullah","test"]然后我运行Apartment::Tenant.switch!("murah5")它返回: Apartment::TenantNotFound: One of the

    3热度

    1回答

    我对线程之间是否存在C#marshal的COM对象感到困惑。为此,我有一个应用程序以并行方式加载一组文件。我正在使用StaTaskScehduler来使用COM对象加载文件。一旦COM对象被加载,我将对象存储在中央列表中。 然后,我再次尝试使用STATaskScheduler对此数据执行一些处理。但是在这一点上,我遇到了一个问题。我收到一个例外如下: An unhandled exception