首 页IT知识库收藏内容
当前位置:翔宇亭IT乐园IT知识库C#C#其它

C#线程的一个练习例子

减小字体 增大字体 作者:不详  来源:转载  发布时间:2010-08-27 08:14:00

实现两个线程,A为控制线程,B为工作线程,具体要求如下:

(1)从A中读入一个整数;

(2)根据A中读入的数字计算其阶乘,同时将结果输入到D盘根目录下的1.txt文件中。该结果需要重复写入1000次,但当用户输入的整数发生改变时,中断写入,并计算新数字的阶乘,将结果追加到1.txt中;

(3)输入0退出。

程序如下:

using System;
using System.IO;
using System.Threading;

namespace ThreadTest
{
     /// <summary>
     /// Class1 的摘要说明。
     /// </summary>
     class Test
     {
          /// <summary>
          /// 应用程序的主入口点。
          /// </summary>
          /// 
          public static TextWriter writer;
          public static Thread A;
          public static Thread B;
          public static int readData;

          public static void ThreadA()
          {
               while (true)
               {
                    Console.WriteLine("请输入整数:");
                    string s=Console.ReadLine();

                    if (s==""||s=="0")
                    {
                         writer.Close();
                         break;
                    }
else
{
if (s!=readData.ToString())
{
readData=Convert.ToInt32(s);
if (B!=null)
{
B.Abort();
}
B=new Thread(new ThreadStart(ThreadB));
B.Start();
}
}

}
}

public static void ThreadB()
{
//重复1000次;
for (int i=0;i<1000;i++)
{
long result=1;

//计算阶乘;
for (long j=1;j<=(long)readData;j++)
{
result*=j;
}
if (writer==null)
{
writer=File.AppendText(@"D:\1.txt");
}
writer.WriteLine("{0}",result);
writer.Flush();
}
}

[STAThread]
static void Main(string[] args)
{

A=new Thread(new ThreadStart(ThreadA));
A.Start();
}
}
}


本文源自:翔宇亭——IT乐园(http://www.biye5u.com),转载请保留此信息!

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

Tags:线程 C#

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2024 biye5u.com. All Rights Reserved.