私は2つのタスクを並列に実行したい、目標は:カウントダウンがある間、私は入力をロックしたい。カウンタが0になると、プログラムはロック入力を停止する必要があります。これまでのところ、私は入力をしばらくブロックする方法を知っていますが、同時にタイマーを持っていて、どれくらい時間がかかるか教えてくれます。ここに私のコードです:C# - 2つのタスクを並列に実行
using System;
using System.Threading;
namespace ConsoleApp1
{
class Program
{
private static TimeSpan timeSpan = new TimeSpan(0, 5, 0);
static void Main(string[] args)
{
Program program = new Program();
while (timeSpan > TimeSpan.Zero)
{
program.timer();
//Program.BlockInput(timeSpan);
}
Console.ReadLine();
}
private void timer()
{
timeSpan -= new TimeSpan(0, 0, 1);
Console.WriteLine(timeSpan.ToString());
}
private partial class NativeMethods
{
[System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint = "BlockInput")]
[return: System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)]
public static extern bool BlockInput([System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)] bool fBlockIt);
}
private static void BlockInput(TimeSpan span)
{
try
{
NativeMethods.BlockInput(true);
Thread.Sleep(span);
}
finally
{
NativeMethods.BlockInput(false);
}
}
}
}
私はあなたの問題を理解していません。あなたは2つの並列タスクについて話しますか?あなたのコードには何も表示されません。 「私は、どれくらいの時間がかかるか教えてくれるタイマーを持っていたい」:あなたの仕事の実行時間?またはBlockInputの遅延? – Seuleuzeuh
私はしばらく入力をブロックしたがっています。そして、入力がブロックされている間、私はゼロに数えている時間をコンソールで見たいと思う。 – przemoinho
最近、奇妙なことにマルウェアを書き込もうとしている人たちの急増となる縫い目があります。 –