@@ -35,21 +35,21 @@ private static void Main(string[] args)
35
35
36
36
// Only one instance of the fulltrust process allowed
37
37
// This happens if multiple instances of the UWP app are launched
38
- var mutex = new Mutex ( true , "FilesUwpFullTrust" , out bool isNew ) ;
38
+ using var mutex = new Mutex ( true , "FilesUwpFullTrust" , out bool isNew ) ;
39
39
if ( ! isNew ) return ;
40
40
41
- // Create shell COM object and get recycle bin folder
42
- recycler = new ShellFolder ( Vanara . PInvoke . Shell32 . KNOWNFOLDERID . FOLDERID_RecycleBinFolder ) ;
43
- Windows . Storage . ApplicationData . Current . LocalSettings . Values [ "RecycleBin_Title" ] = recycler . Name ;
44
-
45
- // Create shell watcher to monitor recycle bin folder
46
- var watcher = new ShellItemChangeWatcher ( recycler , false ) ;
47
- watcher . NotifyFilter = ChangeFilters . AllDiskEvents ;
48
- watcher . Changed += Watcher_Changed ;
49
- //watcher.EnableRaisingEvents = true; // TODO: uncomment this when updated library is released
50
-
51
41
try
52
42
{
43
+ // Create shell COM object and get recycle bin folder
44
+ recycler = new ShellFolder ( Vanara . PInvoke . Shell32 . KNOWNFOLDERID . FOLDERID_RecycleBinFolder ) ;
45
+ Windows . Storage . ApplicationData . Current . LocalSettings . Values [ "RecycleBin_Title" ] = recycler . Name ;
46
+
47
+ // Create shell watcher to monitor recycle bin folder
48
+ watcher = new ShellItemChangeWatcher ( recycler , false ) ;
49
+ watcher . NotifyFilter = ChangeFilters . AllDiskEvents ;
50
+ watcher . Changed += Watcher_Changed ;
51
+ //watcher.EnableRaisingEvents = true; // TODO: uncomment this when updated library is released
52
+
53
53
// Connect to app service and wait until the connection gets closed
54
54
appServiceExit = new AutoResetEvent ( false ) ;
55
55
InitializeAppServiceConnection ( ) ;
@@ -60,6 +60,8 @@ private static void Main(string[] args)
60
60
connection ? . Dispose ( ) ;
61
61
watcher ? . Dispose ( ) ;
62
62
recycler ? . Dispose ( ) ;
63
+ appServiceExit ? . Dispose ( ) ;
64
+ mutex ? . ReleaseMutex ( ) ;
63
65
}
64
66
}
65
67
@@ -113,6 +115,7 @@ private static async void Watcher_Changed(object sender, ShellItemChangeWatcher.
113
115
private static AppServiceConnection connection ;
114
116
private static AutoResetEvent appServiceExit ;
115
117
private static ShellFolder recycler ;
118
+ private static ShellItemChangeWatcher watcher ;
116
119
117
120
private static async void InitializeAppServiceConnection ( )
118
121
{
0 commit comments