public TestActor() { _dataTransfer = DataTransferManager.New(Context); _dataTransfer.SubscribeToEvent <TransferCompled>(); _dataTransfer.SubscribeToEvent <TransferFailed>(); _dataTransfer.SubscribeToEvent <IncomingDataTransfer>(); Receive <IncomingDataTransfer>(d => d.Accept(() => File.Create(TargetFile))); Receive <TransferMessages.TransferCompled>(c => { if (_currentTransfer == null) { return; } try { switch (c) { case TransferCompled _: ZipFile.Open(TargetFile, ZipArchiveMode.Read).Dispose(); Console.WriteLine("Tranfer Beended"); break; case TransferFailed failed: Console.WriteLine($"Transfer Fehler: {failed.Reason}"); break; } } catch (Exception e) { Console.WriteLine(e); } finally { Self.Tell(_currentTransfer); } }); var toDo = new Queue <Action <ManualResetEvent> >(); toDo.Enqueue(Init); toDo.Enqueue(RegisterTest); toDo.Enqueue(RegisterTest); toDo.Enqueue(TransferTest); toDo.Enqueue(TransferTest); toDo.Enqueue(CleanTest); Receive <ManualResetEvent>(evt => { if (_cancel || toDo.Count == 0) { evt.Set(); return; } var op = toDo.Dequeue(); op(evt); Thread.Sleep(2000); }); }