async static Task Main()
 {
     using await(var resource = new AsyncResource())
           {
               await resource.PerformWorkAsync();
           }
           Console.WriteLine("After the using await statement");
 }
 public AsyncOperation GetResourceByPathAsync <T>(string path, Action <AsyncResource> callBack, System.Object param) where T : UnityEngine.Object
 {
     if (useStreamAsset)
     {
         return(null);
     }
     else
     {
         ResourceRequest resReq    = Resources.LoadAsync <T>(path);
         AsyncResource   ar        = new AsyncResource(resReq, param);
         SingleAsyncRes  singleRes = new SingleAsyncRes(callBack, ar);
         m_asyncSingleLoadingRes.Add(singleRes);
         return(resReq);
     }
 }
 public AsyncOperation GetResourceByPathAsync(string path, Action <AsyncResource> callBack = null, System.Object param = null)
 {
     if (useStreamAsset)
     {
         return(null);
     }
     else
     {
         ResourceRequest resReq   = Resources.LoadAsync(path);
         AsyncResource   ar       = new AsyncResource(resReq, param);
         SingleAsyncRes  groupRes = new SingleAsyncRes(callBack, ar);
         m_asyncSingleLoadingRes.Add(groupRes);
         return(resReq);
     }
 }
 public void GetResourceByPathAsync(List <string> path, Action <Dictionary <string, AsyncResource> > callBack = null, System.Object param = null)
 {
     if (useStreamAsset)
     {
         return;
     }
     else
     {
         Dictionary <string, AsyncResource> item = new Dictionary <string, AsyncResource>();
         foreach (string resPath in path)
         {
             if (item.ContainsKey(resPath))
             {
                 // Debug.Log("same res: "+resPath);
                 continue;
             }
             ResourceRequest resReq = Resources.LoadAsync(resPath);
             AsyncResource   ar     = new AsyncResource(resReq, param);
             item.Add(resPath, ar);
         }
         GroupAsyncRes groupRes = new GroupAsyncRes(callBack, item);
         m_asyncGroupLoadingRes.Add(groupRes);
     }
 }
 public SingleAsyncRes(Action <AsyncResource> callBack, AsyncResource res)
 {
     m_callBack = callBack;
     m_res      = res;
 }