@@ -26,143 +26,6 @@ namespace Files.App.Helpers
2626 /// </summary>
2727 public static partial class Win32Helper
2828 {
29- public static Task StartSTATask ( Func < Task > func )
30- {
31- var taskCompletionSource = new TaskCompletionSource ( ) ;
32- Thread thread = new Thread ( async ( ) =>
33- {
34- Ole32 . OleInitialize ( ) ;
35-
36- try
37- {
38- await func ( ) ;
39- taskCompletionSource . SetResult ( ) ;
40- }
41- catch ( Exception ex )
42- {
43- taskCompletionSource . SetResult ( ) ;
44- App . Logger . LogWarning ( ex , ex . Message ) ;
45- }
46- finally
47- {
48- Ole32 . OleUninitialize ( ) ;
49- }
50- } )
51-
52- {
53- IsBackground = true ,
54- Priority = ThreadPriority . Normal
55- } ;
56-
57- thread . SetApartmentState ( ApartmentState . STA ) ;
58- thread . Start ( ) ;
59-
60- return taskCompletionSource . Task ;
61- }
62-
63- public static Task StartSTATask ( Action action )
64- {
65- var taskCompletionSource = new TaskCompletionSource ( ) ;
66- Thread thread = new Thread ( ( ) =>
67- {
68- Ole32 . OleInitialize ( ) ;
69-
70- try
71- {
72- action ( ) ;
73- taskCompletionSource . SetResult ( ) ;
74- }
75- catch ( Exception ex )
76- {
77- taskCompletionSource . SetResult ( ) ;
78- App . Logger . LogWarning ( ex , ex . Message ) ;
79- }
80- finally
81- {
82- Ole32 . OleUninitialize ( ) ;
83- }
84- } )
85-
86- {
87- IsBackground = true ,
88- Priority = ThreadPriority . Normal
89- } ;
90-
91- thread . SetApartmentState ( ApartmentState . STA ) ;
92- thread . Start ( ) ;
93-
94- return taskCompletionSource . Task ;
95- }
96-
97- public static Task < T ? > StartSTATask < T > ( Func < T > func )
98- {
99- var taskCompletionSource = new TaskCompletionSource < T ? > ( ) ;
100-
101- Thread thread = new Thread ( ( ) =>
102- {
103- Ole32 . OleInitialize ( ) ;
104-
105- try
106- {
107- taskCompletionSource . SetResult ( func ( ) ) ;
108- }
109- catch ( Exception ex )
110- {
111- taskCompletionSource . SetResult ( default ) ;
112- App . Logger . LogWarning ( ex , ex . Message ) ;
113- //tcs.SetException(e);
114- }
115- finally
116- {
117- Ole32 . OleUninitialize ( ) ;
118- }
119- } )
120-
121- {
122- IsBackground = true ,
123- Priority = ThreadPriority . Normal
124- } ;
125-
126- thread . SetApartmentState ( ApartmentState . STA ) ;
127- thread . Start ( ) ;
128-
129- return taskCompletionSource . Task ;
130- }
131-
132- public static Task < T ? > StartSTATask < T > ( Func < Task < T > > func )
133- {
134- var taskCompletionSource = new TaskCompletionSource < T ? > ( ) ;
135-
136- Thread thread = new Thread ( async ( ) =>
137- {
138- Ole32 . OleInitialize ( ) ;
139- try
140- {
141- taskCompletionSource . SetResult ( await func ( ) ) ;
142- }
143- catch ( Exception ex )
144- {
145- taskCompletionSource . SetResult ( default ) ;
146- App . Logger . LogInformation ( ex , ex . Message ) ;
147- //tcs.SetException(e);
148- }
149- finally
150- {
151- Ole32 . OleUninitialize ( ) ;
152- }
153- } )
154-
155- {
156- IsBackground = true ,
157- Priority = ThreadPriority . Normal
158- } ;
159-
160- thread . SetApartmentState ( ApartmentState . STA ) ;
161- thread . Start ( ) ;
162-
163- return taskCompletionSource . Task ;
164- }
165-
16629 public static async Task < string ? > GetFileAssociationAsync ( string filename , bool checkDesktopFirst = false )
16730 {
16831 // Find UWP apps
0 commit comments