@@ -11,9 +11,9 @@ public static async Task<string> RequestFileName(string title, string filter, st
1111 {
1212 MyLog . Default . WriteLine ( $ "Synchronization Context, before thread: { SynchronizationContext . Current != null } ") ;
1313 MyLog . Default . Flush ( ) ;
14- var tcs = new TaskCompletionSource < string > ( ) ;
15- var thread = new Thread ( ( ) =>
16- {
14+ // var tcs = new TaskCompletionSource<string>();
15+ // var thread = new Thread(() =>
16+ // {
1717 var dialog = new OpenFileDialog
1818 {
1919 Title = title ,
@@ -25,24 +25,25 @@ public static async Task<string> RequestFileName(string title, string filter, st
2525 AutoUpgradeEnabled = true
2626 } ;
2727
28- MyLog . Default . WriteLine ( $ "Synchronization Context, before dialog: { SynchronizationContext . Current != null } ") ;
29- MyLog . Default . Flush ( ) ;
30- var response = dialog . ShowDialog ( Plugin . Current ) == DialogResult . OK ? dialog . FileName : null ;
31- MyLog . Default . WriteLine ( $ "Synchronization Context, after dialog: { SynchronizationContext . Current != null } ") ;
32- MyLog . Default . Flush ( ) ;
33- tcs . SetResult ( response ) ;
34- } ) ;
35- thread . SetApartmentState ( ApartmentState . STA ) ;
36- thread . Start ( ) ;
37- MyLog . Default . WriteLine ( $ "Before await { Thread . CurrentThread . ManagedThreadId } ") ;
38- MyLog . Default . Flush ( ) ;
39- var result = await tcs . Task . ConfigureAwait ( false ) ;
40- MyLog . Default . WriteLine ( $ "After await { Thread . CurrentThread . ManagedThreadId } ") ;
41- MyLog . Default . Flush ( ) ;
42- await Plugin . SwitchToMainThread ( ) . ConfigureAwait ( false ) ;
43- MyLog . Default . WriteLine ( $ "After thread switch { Thread . CurrentThread . ManagedThreadId } ") ;
44- MyLog . Default . Flush ( ) ;
45- return result ;
28+ //MyLog.Default.WriteLine($"Synchronization Context, before dialog: {SynchronizationContext.Current != null}");
29+ //MyLog.Default.Flush();
30+ //var response = dialog.ShowDialog(Plugin.Current) == DialogResult.OK ? dialog.FileName : null;
31+ return dialog . ShowDialog ( Plugin . Current ) == DialogResult . OK ? dialog . FileName : null ;
32+ //MyLog.Default.WriteLine($"Synchronization Context, after dialog: {SynchronizationContext.Current != null}");
33+ //MyLog.Default.Flush();
34+ //tcs.SetResult(response);
35+ //});
36+ //thread.SetApartmentState(ApartmentState.STA);
37+ //thread.Start();
38+ //MyLog.Default.WriteLine($"Before await {Thread.CurrentThread.ManagedThreadId}");
39+ //MyLog.Default.Flush();
40+ //var result = await tcs.Task.ConfigureAwait(false);
41+ //MyLog.Default.WriteLine($"After await {Thread.CurrentThread.ManagedThreadId}");
42+ //MyLog.Default.Flush();
43+ //await Plugin.SwitchToMainThread().ConfigureAwait(false);
44+ //MyLog.Default.WriteLine($"After thread switch {Thread.CurrentThread.ManagedThreadId}");
45+ //MyLog.Default.Flush();
46+ //return result;
4647 }
4748 }
4849}
0 commit comments