相关疑难解决方法(0)

获取主题列表

我想列出所有正在运行的线程,但不是通过使用List<>该类.我想动态观察正在运行的线程.我怎样才能做到这一点?

c# multithreading list

40
推荐指数
2
解决办法
5万
查看次数

如何使用Name属性枚举.NET中的线程?

假设我开始这样的两个线程:

// Start first thread
Thread loaderThread1 = new Thread(loader.Load);
loaderThread1.Name = "Rope";
loaderThread1.Start();

// Start second thread
Thread loaderThread2 = new Thread(loader.Load);
loaderThread2.Name = "String";
loaderThread2.Start();
Run Code Online (Sandbox Code Playgroud)

有什么办法可以通过使用Name属性来枚举线程吗?

我希望能够检查具有特定名称的线程是否仍在运行.

我创建的每个线程都使用一组命名数据,数据集的名称用作处理数据的线程的名称.在启动工作线程之前,我想查看同一组数据的任何先前线程是否已在运行.

我使用的线程System.Diagnostics.GetCurrentProcess().Threads是类型的ProcessThread,而不是Thread!

c# multithreading

14
推荐指数
1
解决办法
6672
查看次数

在运行时暂停当前进程中的所有线程

我的应用程序中有一个错误,只有当我在调试器中暂停应用程序几分钟时,它才能显示出来.我怀疑这是由于我使用的第三方网络库有一个心跳线程,当它的心跳线程暂停时它无法ping服务器时会断开连接.

我正在尝试为此编写一个测试用例应用程序,以验证这是导致该错误的原因.为此,我需要一种方法来暂停应用程序中的所有线程(我稍后将其缩小到仅暂停我怀疑可能是心跳线程的线程)来模拟在调试器中暂停应用程序.

有谁知道如何做到这一点?一个线程甚至可能导致另一个线程入睡吗?

谢谢,亚历克斯

更新:

我最终决定我真的不需要一个应用程序为我这样做,因为重点是验证调试器中的暂停导致断开连接.所以,这就是我所做的......(最简单的方法往往是最好的......或者至少是最简单的......)

    private static void Main(string[] args)
    {
        IPubSubAdapter adapter = BuildAdapter();
        bool waitingForMessage;
        adapter.Subscribe(_topic, message => waitingForMessage = false, DestinationType.Topic);
        Stopwatch timePaused = new Stopwatch();
        while (adapter.IsConnected)
        {
            Console.WriteLine("Adapter is still connected");
            waitingForMessage = true;
            adapter.Publish(_topic, "testmessage", DestinationType.Topic);
            while (waitingForMessage)
            {
                Thread.Sleep(100);
            }
            timePaused.Reset();
            timePaused.Start();
            Debugger.Break();
            timePaused.Stop();
            Console.WriteLine("Paused for " + timePaused.ElapsedMilliseconds + "ms.");
            Thread.Sleep(5000); // Give it a chance to realise it's disconnected.
        }
        Console.WriteLine("Adapter is disconnected!");
        Console.ReadLine();
    }
Run Code Online (Sandbox Code Playgroud)

并输出:

Adapter is still connected …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading tibco-ems heartbeat

7
推荐指数
1
解决办法
6070
查看次数

为每个运行的线程转储StackTrace

.NET(VB.NET或C#)是否有一种方法,当发生异常时,转储每个线程的堆栈跟踪?基本上我想重现Visual Studio的Debug-> Threads窗口中发生的事情,看看发生异常时每个线程正在做什么

.net c# vb.net

6
推荐指数
1
解决办法
6245
查看次数

标签 统计

c# ×4

multithreading ×3

.net ×2

heartbeat ×1

list ×1

tibco-ems ×1

vb.net ×1