Пример #1
0
            public Task GetOrDownloadAsync(string url)
            {
                //simulate image download
                IPendingOperation pendingOperation = null;

                Console.WriteLine($"Downloading {url}");
                Task.Delay(2000).ContinueWith(_ =>
                {
                    Console.WriteLine($"Downloaded {url}");
                    pendingOperation.Complete();
                });

                pendingOperation = ServiceRef.RegisterPendingOperation(this, actionOnCompletion: (res) =>
                {
                    //Accessing _images here would be risky, just wrap the call...
                    ServiceRef.Call(this, () =>
                    {
                        Console.WriteLine($"Adding to images {url}");
                        _images.Add(new ImageStuff()
                        {
                            Url = url, Data = new byte[] { 0x01 }
                        });
                        Console.WriteLine($"Added to images {url}");
                    });
                });

                return(Task.CompletedTask);
            }
Пример #2
0
 public void CompleteOperation()
 {
     OperationCompleted = true;
     _pendingOperation.Complete();
 }
Пример #3
0
 public Task CompleteOperationAsync()
 {
     OperationCompleted = true;
     _pendingOperation.Complete();
     return(Task.CompletedTask);
 }