static void DoThreadOne(VaultType bmv, StartToken tkn) { HpTimeStamps.TimeStampSource.Calibrate(); while (!tkn.IsSet) { } using var lck = bmv.Lock(); Thread.Sleep(TimeSpan.FromMilliseconds(750)); lck.Value += "Hi mom!"; }
static void DoThreadTwo(VaultType bv, StartToken tkn, ExceptionReceptor receptor) { HpTimeStamps.TimeStampSource.Calibrate(); while (!tkn.IsSet) { } Thread.Sleep(TimeSpan.FromMilliseconds(250)); try { using var lck = bv.Lock(TimeSpan.FromMilliseconds(10)); receptor.SetBadException(); } catch (TimeoutException ex) { receptor.SupplyExceptionOrThrow(ex); } catch (Exception rx) { receptor.SupplyExceptionOrThrow(rx); } }