private void _04_EnqueueData(_04_args arg) { try { // Local 'data' or its members cannot have their address taken and be used inside an anonymous // method or lambda expression - Error when trying to enqueue a struct arg.mQueue.Put(arg.dData); StringBuilder numbers = new StringBuilder(); for (int i = 0; i < arg.dData.NumbersLength; i++) { unsafe { numbers.Append(arg.dData.Numbers[i] + ", "); } } char[] txt = new char[arg.dData.TextLength]; for (int i = 0; i < arg.dData.TextLength; i++) { unsafe { txt[i] = arg.dData.Text[i]; } } string text = new String(txt); Console.WriteLine("_04_testTakeIsUnblockedWhenElementAdded() - data items enqueued \n'{0}', \n'{1}', \n'{2}', \n'{3}'", arg.dData.Value, arg.dData.Letter, numbers, text); } catch (Exception unexpected) { Console.Write(unexpected); throw; } }
private void _04_DequeueData(_04_args arg) { try { _04_MMData unused = arg.mQueue.Take<_04_MMData>(); StringBuilder numbers = new StringBuilder(); String text; for (int i = 0; i < unused.NumbersLength; i++) { unsafe { numbers.Append(unused.Numbers[i] + ", "); } } char[] txt = new char[unused.TextLength]; for (int i = 0; i < unused.TextLength; i++) { unsafe { txt[i] = unused.Text[i]; } } text = new String(txt); Console.WriteLine("_04_testTakeIsUnblockedWhenElementAdded() = data item dequeued = \n'{0}', \n'{1}', \n'{2}', \n'{3}'", unused.Value, unused.Letter, numbers, text); } catch (Exception unexpected) { Console.Write(unexpected); throw; } }