private DoCallBack ( CrossContextDelegate deleg ) : void | ||
deleg | CrossContextDelegate | |
리턴 | void |
public void TestDoCallback () { otherCtx = cbo.GetContext (); Assert.IsTrue (Thread.CurrentContext != otherCtx, "New context not created"); otherCtx.DoCallBack (new CrossContextDelegate (DelegateTarget)); }
public void TestDatastore () { otherCtx = cbo.GetContext (); slot = Context.AllocateDataSlot (); LocalDataStoreSlot namedSlot1 = Context.AllocateNamedDataSlot ("slot1"); LocalDataStoreSlot namedSlot2 = Context.GetNamedDataSlot ("slot2"); Context.SetData (slot, "data"); Context.SetData (namedSlot1, "data1"); Context.SetData (namedSlot2, "data2"); otherCtx.DoCallBack (new CrossContextDelegate (CheckOtherContextDatastore)); Assert.IsTrue (Context.GetData (slot).Equals ("data"), "Wrong data 1"); Assert.IsTrue (Context.GetData (namedSlot1).Equals ("data1"), "Wrong data 2"); Assert.IsTrue (Context.GetData (namedSlot2).Equals ("data2"), "Wrong data 3"); try { namedSlot1 = Context.AllocateNamedDataSlot ("slot1"); Assert.Fail ("Exception expected"); } catch {} Context.FreeNamedDataSlot ("slot1"); Context.FreeNamedDataSlot ("slot2"); try { namedSlot1 = Context.AllocateNamedDataSlot ("slot1"); } catch { Assert.Fail ("Exception not expected"); } Context.FreeNamedDataSlot ("slot1"); }