小编E_N*_*N_Y的帖子

延迟继续不工作

我的问题是为什么延迟方法不起作用(整个操作不等待4秒)并且60%没有显示在lable1内部.

更准确地说,操作的顺序应该是这样的,整个操作应该花费8秒.但是它需要4秒,就Thread.Sleep(4000)在里面LongTimeMethod1()工作正常

LongTimeMethod1()//delay for 4 sec,show 60%
delay()//delay for 4 sec 
LongTimeMethod()//40% imidiatly
Run Code Online (Sandbox Code Playgroud)

我知道我可以用await和async编写代码,但我想知道我在这段代码中做错了什么.

 private void button1_Click(object sender, EventArgs e)
    {
        CallBigMethod();
        label1.Text =@"Waiting ...";
    }
    private async void CallBigMethod()
    {
        var result = await BigMethod();
        label1.Text = result; 


    }
    private Task<string> BigMethod()
    {
        return Task.Factory
         .StartNew(() => LongTimeMethod1())
         .ContinueWith((pre) => Delay())
         .ContinueWith((pre) => LongTimeMethod());
    }     
    private string LongTimeMethod()
    {

        return  "40%...";
    }
    public async Task Delay()
    {

        await Task.Delay(4000);

    }
    private string LongTimeMethod1()
    {
        Thread.Sleep(4000); …
Run Code Online (Sandbox Code Playgroud)

c# multithreading async-await

5
推荐指数
2
解决办法
1814
查看次数

更改console.WriteLine的输出

在我的求职面试中,面试官要求我更改控制台输出以打印"B"而不触及主方法和控制台!
这可能吗?(我试图改变切入点,但这不正确)我不知道如何回答这个问题

 class Program
  {
        static void Main(string[] args)
        {
            Console.WriteLine("A");
        }
  }
Run Code Online (Sandbox Code Playgroud)

c# console

3
推荐指数
1
解决办法
124
查看次数

标签 统计

c# ×2

async-await ×1

console ×1

multithreading ×1