コード例 #1
0
        // ---------------------------------------------------------------------

        private async Task SetNumberOfThreads_NonBlocking()
        {
            label1.Text = "button clicked ... wait 3 sec";
            await SyncOverAsyncDeadlock_Resolved_v1();

            label1.Text = AsyncAndThreading.ThreadCount().ToString();
        }
コード例 #2
0
        void SyncOverAsyncDeadlock_Resolved_TimeOut()
        {
            int timeout = 2;

            label1.Text = $"unresponsive for {timeout} seconds";
            var t = AsyncAndThreading.Simulate();

            t.Wait(TimeSpan.FromSeconds(timeout));
            label1.Text = $"responsive again";
        }
コード例 #3
0
        static IEnumerable <Task <string> > SourceTasks_pg_163_2()
        {
            Task <string>         task1     = AsyncAndThreading.ReadFileAsync(false);
            Task <string>         task2     = AsyncAndThreading.ReadFileAsync(false, @"C:\Users\Henrique-private\Desktop\demo2.txt");
            Task <string>         task3     = AsyncAndThreading.ReadFileAsync(false, @"C:\Users\Henrique-private\Desktop\demo3.txt");
            List <Task <string> > tasksList = new List <Task <string> >();

            tasksList.Add(task1);
            tasksList.Add(task2);
            tasksList.Add(task3);
            var tasksArray = tasksList.ToArray();

            return(tasksArray);
        }
コード例 #4
0
        private void button1_Click(object sender, EventArgs e)
        {
            var execCtx  = AsyncAndThreading.GetExecutionContext();
            int threadId = AsyncAndThreading.GetThreadId();

            // reason 2: deadlock
            //SyncOverAsyncDeadlock();
            //SyncOverAsyncDeadlock_Resolved_TimeOut();
            //await SetNumberOfThreads_NonBlocking();

            // reason 3: resources
            Task <double> res = AsyncAndThreading.ComputeValueAsync();

            label1.Text = res.Result.ToString();
        }
        private static async Task <string> _157_AvoidRunningCtxAwareOnContextFree()
        {
            var res = await AsyncAndThreading.ReadFileAsync(true);

            return(res);
        }
コード例 #6
0
 async Task SyncOverAsyncDeadlock_Resolved_v1()
 {
     await AsyncAndThreading.Simulate(3);
 }
コード例 #7
0
        // ---------------------------------------------------------------------

        void SyncOverAsyncDeadlock()
        {
            var t = AsyncAndThreading.Simulate();

            t.Wait();
        }