急,关于C#线程的问题

来源:百度知道 编辑:UC知道 时间:2024/06/27 07:43:35
请问,我定义一个线程,要怎么只让他运行10秒后退出? 请大家告诉我,分不多,我送完。。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace ConsoleApplication101
{

class Game
{
int m,n;
string str = "y";
public void Game_Begin()
{
do
{
Random Ran = new Random();
m = Ran.Next(1, 3);

Console.WriteLine("1、石头,2、剪刀、3、布");
n = Convert.ToInt32(Console.ReadLine());
if (n == 1 || n == 2 || n == 3)
{
if (m == 1 && n == 2 || m == 2 && n == 3 || m == 3 && n == 1)
{
Console.WriteLine("You Lost");
}
else if (m == 1 && n ==

你的G1线程已经启动了,可以有thread.currentthread属性来查看主线程是否是当前线程,这样sleep才有效吧。用线程池应该可以实现吧
static void Main(string[] args)
{
Game A = new Game();
ThreadPool.QueueUserWorkItem(new WaitCallback(A.Game_Begin));
Thread.sleep(10000);
ThreadPool.QueueUserWorkItem(new WaitCallback(A.Game_Begin));
Console.WriteLine("游戏结束");

Console.ReadLine();

}

Game games1 = new Game();
ThreadPool.QueueUserWorkItem(new WaitCallback(games1 .Game_Begin));
Thread.sleep(10000);
ThreadPool.QueueUserWorkItem(new WaitCallback(games1 .Game_Begin));
Console.ReadLine();

Thread G1 = new Thread(new ThreadStart(A.Game_Begin));
G1.Start();
Thread.Sleep(10000); //就这里,
仔细看看 你这是商正在运行的程序暂停而不是让G1暂停

建议你用 system.threading命名空间下的timer类进行设置,每隔10秒,重复执行一下你的方法就行了,具体的代码,网上很多,或者最好看一下msdn帮助文档里面的