Microsoft.Ccr.Core.MultipleItemGather.Cleanup C# (CSharp) Method

Cleanup() public method

public Cleanup ( ) : void
return void
        public override void Cleanup()
        {
            base.Cleanup ();
            for (int i = 0; i < ports.Length; ++i)
                ports [i].UnregisterReceiver (receivers [i]);
        }

Same methods

MultipleItemGather::Cleanup ( ITask taskToCleanup ) : void

Usage Example

コード例 #1
0
ファイル: MultipleItemGatherTest.cs プロジェクト: kumpera/Ccr
        public void CleanupTask()
        {
            Port<int> pa = new Port<int> ();
            Port<string> pb = new Port<string> ();

            Type[] types = new Type[] { typeof (int), typeof (string) };
            IPortReceive[] ports = new IPortReceive[] { pa, pb };
            int count = 2;
            Handler<ICollection[]> handler = (cols) => { };
            var mig = new MultipleItemGather (types, ports, count, handler);
            var dq = new SerialDispatchQueue ();
            mig.TaskQueue = dq;

            mig.Execute ();

            ITask task = null;
            var rec = ports [0].GetReceivers () [0];
            Assert.IsTrue (rec.Evaluate (new PortElement<int> (10), ref task), "#1");
            Assert.IsNull (task, "#2");
            Assert.IsTrue (rec.Evaluate (new PortElement<int> (20), ref task), "#3");
            Assert.IsNotNull (task, "#4");

            mig.Cleanup (task);

            Assert.AreEqual (2, pa.ItemCount, "#4");
            Assert.AreEqual (0, pb.ItemCount, "#5");

            Assert.AreEqual (10, pa.Test (), "#6");
            Assert.AreEqual (20, pa.Test (), "#7");
        }