相关疑难解决方法(0)

关闭多线程应用程序

我正在尝试为我的C#应用​​程序编写一个ThreadManager.我创建了几个线程:
我的文本编写器的一个线程.
一个监视某些统计信息的线程.
多线程执行大量计算(每个核心最多4个线程,我在2x四核服务器上运行我的应用程序).

我的应用程序通常一次最多运行24小时,因此所有线程都在开始时创建,并且它们会在应用程序运行的整个过程中持续存在.

我希望有一个单独的地方,我"注册"我的所有踏板,当应用程序关闭时,我只需调用一个方法,它将通过所有已注册的线程并关闭它们.

为此我设计了以下课程:

public class ThreadManager
{
    private static Object _sync = new Object();
    private static ThreadManager _instance = null;
    private static List<Thread> _threads;
    private ThreadManager()
    {
        _threads = new List<Thread>();
    }

    public static ThreadManager Instance
    {
        get
        {
            lock (_sync)
            {
                if (_instance == null)
                {
                    _instance = new ThreadManager();
                }
            }
            return _instance;
        }
    }

    public void AddThread(Thread t)
    {
        lock (_sync)
        {
            _threads.Add(t);
        }
    }

    public void Shutdown()
    {
        lock (_sync)
        {
            foreach …
Run Code Online (Sandbox Code Playgroud)

c# multithreading

8
推荐指数
2
解决办法
5757
查看次数

其中一个线程阻止.NET程序完全停止.如何识别哪一个?

我有一个包含大量功能的大型应用程序.有时,当您关闭主窗体时 - 它会顺利退出.其他时候表单关闭,但程序仍在运行.Visual Studio 2010提供哪些调试工具来识别行为不当的线程?

.net c# multithreading visual-studio-2010

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

如何删除应用程序中启动的所有线程?

我有一个 WPF 应用程序,它使用许多在自己的线程中工作的第三方 DLL。

其中一些 DLL 有方法STOP()

Thread.Sleep(1000)我在每种方法之后使用SomeObject.Stop()...

无论如何,当我终止应用程序时,某些线程仍在内存中。

有任何线索如何解决这个问题吗?

.net c# wpf dll multithreading

3
推荐指数
1
解决办法
9544
查看次数

Windows窗体应用程序,线程不会停止

我正在使用Windows Form应用程序进行我的线程演示.当我点击button1时,它将启动线程并递归地完成工作.

这里的表格不会像我预期的那样挂起.我想在单击Button2时停止当前运行的线程.但是这不起作用.

        private void button1_Click(object sender, EventArgs e)
        {
            t = new Thread(doWork);          // Kick off a new thread
            t.Start();               
        }

        private  void button2_Click(object sender, EventArgs e)
        {                
            t.Abort();
        }    

        static void doWork()
        {    
            while (true)
            {
              //My work    
            }
        }
      }
Run Code Online (Sandbox Code Playgroud)

.当我调试时,button2_Click方法不会命中指针.我想因为Thread一直很忙.

如果我在某个地方出错,请纠正我.

c# multithreading abort winforms

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×4

multithreading ×4

.net ×2

abort ×1

dll ×1

visual-studio-2010 ×1

winforms ×1

wpf ×1