小编Cla*_*dia的帖子

在C#上使用多线程的问题

我想实现一个程序,显示一些在控制台上随机移动的字符,每个字符都有不同的速度.

我创建了一个递归方法,在控制台上随机移动一个字母.当我想移动两个字母时,我使用两个线程调用相同的方法.

该程序在第一分钟完美运行,但过了一段时间后,这些字母开始在控制台上出现!

我确定我的递归方法没问题(我甚至尝试创建另一种方法,这次只使用一段时间(i <100000)而不是递归.但出现了同样的错误).有人可以帮我吗?

非常感谢你.

编辑:对不起,这是一个示例代码(不考虑如果字母占据相同的位置会发生什么).字母在"体育场"上移动,它们在x轴上移动20-51,在y轴上移动5-26.

public void WriteAt(string s, int x, int y)
    {
        try
        {
            Console.SetCursorPosition(x, y);
            Console.Write(s);
        }
        catch (ArgumentOutOfRangeException e)
        {
            Console.Clear();
            Console.WriteLine(e.Message);
        }

    }

    public void impresion()
    {
        int x = random.Next(20, 51);
        int y = random.Next(5, 26);
        WriteAt("A", x, y);
        imprimir("A", x, y, 80);
    }

    public void impresion2()
    {
        int x = random.Next(20, 51);
        int y = random.Next(5, 26);
        WriteAt("E", x, y);
        imprimir2("E", x, y, 20);
    }

    public void go()
    {
        Thread th1 …
Run Code Online (Sandbox Code Playgroud)

c# console recursion multithreading

4
推荐指数
1
解决办法
2069
查看次数

如何使用线程同时在控制台上读/写

我想实现一个运行模拟的C#控制台应用程序.另外,我想给用户一个机会,以便在控制台上按下'+'或' - '来模拟/减速模拟的速度.

有没有办法在写入时读取控制台?我相信我可以使用多线程,但我不知道怎么做(我还是新的C#).

非常感谢你!

c# simulation console multithreading

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

标签 统计

c# ×2

console ×2

multithreading ×2

recursion ×1

simulation ×1