feat: use ManualResetEvent instead of loop
							parent
							
								
									3dd375a1df
								
							
						
					
					
						commit
						5caebf2b34
					
				| 
						 | 
				
			
			@ -13,6 +13,8 @@ namespace SkyHook
 | 
			
		|||
    {
 | 
			
		||||
        private static SkyHookManager _instance;
 | 
			
		||||
 | 
			
		||||
        private ManualResetEvent _mre;
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Whether this process is focused.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
| 
						 | 
				
			
			@ -77,6 +79,8 @@ namespace SkyHook
 | 
			
		|||
            var started = false;
 | 
			
		||||
            Exception exception = null;
 | 
			
		||||
 | 
			
		||||
            _mre = new(false);
 | 
			
		||||
 | 
			
		||||
            new Thread(() =>
 | 
			
		||||
            {
 | 
			
		||||
                try
 | 
			
		||||
| 
						 | 
				
			
			@ -91,9 +95,7 @@ namespace SkyHook
 | 
			
		|||
                    isHookActive = true;
 | 
			
		||||
                    started = true;
 | 
			
		||||
 | 
			
		||||
                    while (isHookActive)
 | 
			
		||||
                    {
 | 
			
		||||
                    }
 | 
			
		||||
                    _mre.WaitOne();
 | 
			
		||||
                }
 | 
			
		||||
                catch (Exception e)
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -121,6 +123,11 @@ namespace SkyHook
 | 
			
		|||
                throw new SkyHookException(result);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (_mre != null)
 | 
			
		||||
            {
 | 
			
		||||
                _mre.Set();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            isHookActive = false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in New Issue