ActionTaskT.cs
        
        
            
                    22 lines
            
             | 648 B
            
                | text/x-csharp
            
             |
                CSharpLexer
            
          
        
             / Implab / ActionTaskT.cs
          
          
          
      | 
              
  
   | 
            
            r145 | using System; | ||
| namespace Implab { | ||||
| public class ActionTask<T> : ActionTaskBase, IDeferred<T> { | ||||
| readonly Action<T> m_task; | ||||
| 
              
  
   | 
            
            r149 | public ActionTask(Action<T> task, Action<Exception> error, Action<Exception> cancel, bool autoCancellable) : base(error,cancel, autoCancellable) { | ||
| 
              
  
   | 
            
            r145 | m_task = task; | ||
| } | ||||
| public void Resolve(T value) { | ||||
| if (m_task != null && LockCancelation()) { | ||||
| try { | ||||
| m_task(value); | ||||
| SetResult(); | ||||
| } catch(Exception err) { | ||||
| 
              
  
   | 
            
            r196 | SetErrorInternal(err); | ||
| 
              
  
   | 
            
            r145 | } | ||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
