首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#线程问题&最佳实践

C#线程问题&最佳实践
EN

Stack Overflow用户
提问于 2013-04-06 11:56:36
回答 3查看 3.3K关注 0票数 4

这是我第一次在C#应用程序中使用线程。基本上,它是一个应用程序,它检查列表中的一堆网站,不管它是死的还是活的。

这是我第一次尝试使用多线程。

代码语言:javascript
运行
复制
    public void StartThread(string URL,int no)
    {
        Thread newThread = new Thread(() =>
        {
            BeginInvoke(new Action(() => richTextBox1.Text += "Thread " + no + " Running" + Environment.NewLine));
            bool b = ping(URL);
            if (b == true) { BeginInvoke(new Action(() => richTextBox2.Text += "Okay" + Environment.NewLine)); }
            else
            { return; }
        });

        newThread.Start();
    }

我使用上面的函数来创建新的线程,每个线程都是在一个循环中创建的。

{StartThread(站点,i);i++;//计数器}

因为我是初学者,所以我有几个问题。

  1. 代码运行良好,但我不确定这是否是最好的解决方案
  2. 有时线程运行良好,但有时线程不返回ping()方法中的任何值,该方法检查主机,如果其联机使用WebRequest,则返回true。这很平常吗?
  3. 如果我要求用户指定他需要使用的线程的no,我如何在这些线程之间平均分配工作?
  4. 它们是我跟踪线程状态(死/活)的一种优雅方式吗?我目前使用rocess.GetCurrentProcess().Threads.Count;
EN

Stack Overflow用户

发布于 2013-04-06 12:14:32

你应该考虑一下.Net ThreadPool。但是,它通常不适用于执行时间超过秒的线程。

另见:并行编程模式:使用.NET框架4理解和应用并行模式

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15850633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档