Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计时器没有运行_C#_Timer - Fatal编程技术网

C# 计时器没有运行

C# 计时器没有运行,c#,timer,C#,Timer,这是我代码的一部分: if (direccion.Equals("este")) { System.Timers.Timer trampa = new System.Timers.Timer(); trampa.Elapsed += new ElapsedEventHandler(OnTimedEvent); trampa.Interval = 2000; trampa.Enabled = true;

这是我代码的一部分:

  if (direccion.Equals("este"))
        {
        System.Timers.Timer trampa = new System.Timers.Timer();
        trampa.Elapsed += new ElapsedEventHandler(OnTimedEvent);
        trampa.Interval = 2000;
        trampa.Enabled = true;
        Console.WriteLine("Te encuentras con una granja abandonada, al entrar a la misma, te das cuenta que hay un cofre al final del pasillo principal.");
        Console.WriteLine("Al acercarte al pasillo, sientes que el piso se mueve.");
        Console.ReadLine();
        }
    }
问题是OnTimedEvent从未执行过,我认为计时器没有工作,或者至少没有正常工作

private static void OnTimedEvent(object sender, ElapsedEventArgs e)
{
    Random frn = new Random();
    int ran = frn.Next(1, 4);
    System.Timers.Timer caida = new System.Timers.Timer();
    caida.Elapsed += new ElapsedEventHandler(OnTimedEvent2);
    var direccion = Console.ReadLine();
    Console.WriteLine("¡La madera del piso esta extremadamente podrida y se despedaza hacia un abismo!");
    switch (ran)
    {
        case 1:
            caida.Interval = 2500;
            caida.Enabled = true;
            Console.WriteLine("¡Salta hacia ADELANTE para evitar caerte!");
            if (direccion.Equals("adelante"))
            {
                Console.WriteLine("Saltaste hacia adelante, sin embargo, estas atrapado entre el abismo y el cofre.");
                Console.WriteLine("Despues de esperar varios dias por rescate, mueres por deshidratacion.");
                Console.ReadLine();
                caida.Enabled = false;
            }
            else
            {
                Console.WriteLine("No saltaste donde debias y caiste al abismo.");
                Console.ReadLine();
            }
            break;

        case 2:
            caida.Interval = 2000;
            caida.Enabled = true;
            Console.WriteLine("¡Salta hacia ATRAS para evitar caerte!");
            if (direccion.Equals("atras"))
            {
                Console.WriteLine("Saltaste hacia atrás, evitando asi caerte, sin embargo ahora no puedes alcanzar el cofre.");
                Console.WriteLine("Vuelves a casa con las manos vacias.");
                Console.ReadLine();
                caida.Enabled = false;
            }
            else
            {
                Console.WriteLine("No saltaste donde debias y caiste al abismo.");
                Console.ReadLine();
            }
            break;

        case 3:
            caida.Interval = 2000;
            caida.Enabled = true;
            Console.WriteLine("¡Salta hacia IZQUIERDA para evitar caerte!");
            if (direccion.Equals("izquierda"))
            {
                Console.WriteLine("Saltas hacia la izquierda, sin embargo, ahora no puedes alcanzar el cofre.");
                Console.WriteLine("Bordeas el agujero del abismo y luego te devuelves a casa con las manos vacias.");
                Console.ReadLine();
                caida.Enabled = false;
            }
            else
            {
                Console.WriteLine("No saltaste donde debias y caiste al abismo.");
                Console.ReadLine();
            }
            break;
    }
}

private static void OnTimedEvent2(object sender, ElapsedEventArgs e)
{
    Console.WriteLine("X Y Z");
}

问题在于
OnTimedEvent()
方法中的
Console.ReadLine()
。这种方法 将在不同的线程中运行,并且您的主线程当前已在侦听控制台输入


我建议阅读,以了解从不同线程读取输入的方法/添加超时。

控制台。WriteLine(“Te encumentras con una granja auddeada,al entra a la mism,Te das cuenta que hay un cofre al final del pasillo principal”)正在写入控制台?我的猜测是
如果(direccion.Equals(“este”)
为false。也许您需要使用不区分大小写的比较<代码>如果(direccion.Equals(“este”,StringComparison.OrdinalIgnoreCase))
。如果我设置
var direccion=“este”,您的代码对我有效首先。在时间上有什么?你如何确定“OnTimedEvent永远不会被执行”@FrankerZ它正在被编写,是的@鲁弗斯不是为我工作的。