jjzjj

threadState

全部标签

c# - Windows 服务 (c#) 未启动

抱歉我的英语不好,我不是母语人士。我正在尝试制作Windows服务。如果我尝试构建、安装和运行VS模板,我不会收到任何错误。我已将我的winform应用程序移植到服务中,创建了一个安装程序,添加了一些数据源,添加了对web服务的引用,添加了一些类,但没有向OnStart()和OnStop()添加任何代码。我的代码构建正确,我可以从服务管理器启动和停止服务。但是,如果我向服务类添加一些代码(我不会在任何地方调用它),并且如果我不向OnStart()和OnStop()添加代码,那么我将无法启动该服务,并且错误类似于“服务不响应控制功能”。在事件日志中我可以看到异常:System.Argum

c# - 确定性处理 ThreadStatic 对象

ThreadStaticattribute将静态变量声明为每个线程唯一。您知道正确处理此类变量的简单模式吗?我们在ThreadStatic之前使用的是一个ThreadContextManager。每个线程都分配了一个ThreadContext,它保留了所有线程特定的信息。我们生成了一些线程并让它们工作。然后,当它们全部完成时,我们释放了ThreadContentManager,如果它们是IDisposable,它又释放了所有上下文。我没有看到立即将此模式转换为ThreadStatic对象的方法。这些对象最终会被处理掉,因为线程死了,所以没有任何东西引用它们。但是,我们更喜欢确定性处置。

c# - .NET : ThreadStatic vs lock { }. 为什么 ThreadStaticAttribute 会降低性能?

我写了一个小测试程序并且很惊讶为什么lock{}解决方案执行速度比无锁快,但使用[ThreadStatic]静态变量上的属性。[ThreadStatic]片段:[ThreadStatic]privatestaticlongms_Acc;publicstaticvoidRunTest(){Stopwatchstopwatch=newStopwatch();stopwatch.Start();intone=1;for(inti=0;i锁定{}片段:privatestaticlongms_Acc;privatestaticobjectms_Lock=newobject();publicsta

c# - Thread.IsAlive 和 Thread.ThreadState==ThreadState.Running

我正在使用if(Thread.IsAlive)检查线程的状况。该线程中正在运行一个表单。有时在执行过程中,即使窗体保持打开状态,对Thread.IsAlive的调用似乎评估为false。我想用if(Thread.ThreadState==ThreadState.Running)执行相同的检查。这是正确的做法吗?如果不是,可能的解决方法是什么? 最佳答案 msdnThread.IsAlive属性如果此线程已启动且未正常终止或中止,则为true;否则为假。msdn线程.ThreadState运行线程已经启动,没有阻塞,也没有挂起的Thr

android - 什么是 Parcel.enforceInterface?

谁能告诉我Android的Parcel类中的enforceInterface方法是做什么的?开发者网站没有解释其目的,Google也没有返回任何有用的匹配。谢谢。 最佳答案 该方法在处理RPC调用时会检查客户端和服务端的接口(interface)是否相同。详细过程:客户端调用服务器远程方法,在调用mRemote.transact之前,该方法_data.writeInterfaceToken(DESCRIPTOR);会先调用。服务器端onTransact会被调用,然后调用data.enforceInterface(descriptor

c# - ThreadStatic 与线程本地 <T> : is generic better than attribute?

[ThreadStatic]是使用属性定义的,而ThreadLocal使用通用。为什么选择不同的设计方案?在这种情况下使用泛型而不是属性有哪些优点和缺点? 最佳答案 评论中提到的博客文章没有明确说明,但我发现非常重要的是[ThreadStatic]不会为每个线程自动初始化东西。例如,假设您有这个:[ThreadStatic]privatestaticintFoo=42;使用它的第一个线程将看到Foo初始化为42.但后续线程不会。初始化程序仅适用于第一个线程。因此,您最终不得不编写代码来检查它是否已初始化。ThreadLocal通过让

c# - ThreadStatic 与线程本地 <T> : is generic better than attribute?

[ThreadStatic]是使用属性定义的,而ThreadLocal使用通用。为什么选择不同的设计方案?在这种情况下使用泛型而不是属性有哪些优点和缺点? 最佳答案 评论中提到的博客文章没有明确说明,但我发现非常重要的是[ThreadStatic]不会为每个线程自动初始化东西。例如,假设您有这个:[ThreadStatic]privatestaticintFoo=42;使用它的第一个线程将看到Foo初始化为42.但后续线程不会。初始化程序仅适用于第一个线程。因此,您最终不得不编写代码来检查它是否已初始化。ThreadLocal通过让

c# - ThreadStatic 属性如何工作?

[ThreadStatic]属性如何工作?我假设编译器会发出一些IL来填充/检索TLS中的值,但查看反汇编时它似乎并没有在那个级别执行它。作为后续,如果你把它放在一个非静态成员上会发生什么?我们让开发人员犯了这个错误,编译器甚至没有发出警告。更新此处回答的第二个问题:ThreadStaticModifiedwithStaticC# 最佳答案 Howdoes[ThreadStatic]attributework?你可以认为标有ThreadStatic的字段附加到一个线程,它的生命周期与线程的生命周期相当。因此在伪代码中,ThreadS

c# - ThreadStatic 属性如何工作?

[ThreadStatic]属性如何工作?我假设编译器会发出一些IL来填充/检索TLS中的值,但查看反汇编时它似乎并没有在那个级别执行它。作为后续,如果你把它放在一个非静态成员上会发生什么?我们让开发人员犯了这个错误,编译器甚至没有发出警告。更新此处回答的第二个问题:ThreadStaticModifiedwithStaticC# 最佳答案 Howdoes[ThreadStatic]attributework?你可以认为标有ThreadStatic的字段附加到一个线程,它的生命周期与线程的生命周期相当。因此在伪代码中,ThreadS

c# - C# 是否具有 "ThreadLocal"属性的 "ThreadStatic"模拟(对于数据成员)?

我最近发现“ThreadStatic”属性非常有用,但现在让我想要一个“ThreadLocal”类型的属性,它让我拥有基于每个线程的非静态数据成员。现在我知道这会产生一些重要的影响,但是:C#/.net中是否已经内置了这样的东西?或者因为目前看来答案是否定的(对于.net我可以自己想出一个合理的方法来实现它,但如果可用的话,我只会使用已经存在的东西。稻草人示例,如果它不存在,将实现我正在寻找的内容:classFoo{[ThreadStatic]staticDictionarythreadLocalValues=newDictionary();intdefaultValue=0;intT
12