CS 3340 Windows Programming Prog4 Test2 1
2 Program5 Due Friday, March 27
ADT: Database Total ReaderCount WriterCount DataObj (for Monitor) 3 TotalValue (Get & Set) IncreaseReaderCount DecreaseReaderCount IncreaseWriterCount DecreaseWriterCount TheDatabaseStatus (ReadOnly) LockDataObj ReleaseDataObj The properties/methods don’t enforce mutual exclusion.
ADT: Database Does not guarantee any specific rules to access the database. It provides all necessary methods so the clients can enforce different rules to access the database. 4
ADT: ReaderWriter Will enforce the following rules to access the database: Readers can share the database. Writers require exclusive access to the database. First In First Out (FIFO) rule. 5
ADT: ReaderWriter FIFOQueue _database endProgram _thread _passMag _mainForm _ReaderWriterEvent _rondomGenerator 6 TheDatabase (WriteOnly) WakeupNextWhenExiting FinishReadWrite DisplayMsg (WriteOnly) MainForm (WriteOnly) ID (ReadOnly) Type (ReadOnly) Spinup Wakeup Run (MustOverride)
ADT: Reader Sub-class of ReaderWriter Overriding the following: Type ID Run 7
ADT: Writer Sub-class of ReaderWriter Overriding the following: Type ID Run 8
Invoking Delegate ‘ Cannot do it this way! _passMag.Invoke(ID, state, _database.TotalValue) ‘ Must ask the main form to invoke the delegate! _mainForm.Invoke(_passMsg, ID, state, _database.TotalValue) 9
ADT: ReaderWriterForm txtTotal lstWaiting lstWorking txtLog btnNewReader btnNewWriter btnExit dummyThread Delegate 10 FormLoad (Sub New) Create a Database object for ReaderWriter Class Delegate Sub New Reader set MainForm & DisplayMsg New Writer set MainForm & DisplayMsg Exit
Final Exam (Test4) Threads! 11
Project VB Grader Threads Assembly Midterm grade B (A-) or above. me by Wednesday. 12