BendTests.A03_LayerManagerTests.WriteThreadsTest.testThreadWorker C# (CSharp) Method

testThreadWorker() public method

public testThreadWorker ( int thread_num ) : void
thread_num int
return void
            public void testThreadWorker(int thread_num)
            {
                Random rnd = new Random(thread_num);
                Thread.Sleep(rnd.Next(1000)); // sleep a random amount of time

                // add a set of data values
                System.Console.WriteLine("startwrites.. " + thread_num);
                // add the values
                for (int i = 0; i < datavalues.Length; i++) {
                    string data = datavalues[i].ToString();
                    string key = this.composeKey(thread_num, data);
                    db.setValueParsed(key, data);
                    Interlocked.Increment(ref num_additions);
                    if (i % 100 == 0) {
                        Console.WriteLine(" ..thread {0} : {1}", thread_num, i);
                    }
                }

                System.Console.WriteLine("endwrites, startread " + thread_num);

                // read the values
                for (int i = 0; i < datavalues.Length; i++) {
                    RecordData rdata;

                    string data = datavalues[i].ToString();
                    string key = this.composeKey(thread_num, data);

                    if (db.getRecord(new RecordKey().appendParsedKey(key), out rdata) == GetStatus.PRESENT) {
                        if (datavalues[i].ToString() == rdata.ReadDataAsString()) {
                            Interlocked.Increment(ref num_retrievals);
                        } else {
                            System.Console.WriteLine("-- ERR: record data didn't match for key({0}). expected {1} != got {2}",
                                key, datavalues[i].ToString(), rdata.ReadDataAsString());
                        }
                    } else {
                        System.Console.WriteLine("-- ERR: missing record, thread({0}), key({1})",
                            thread_num, key);
                        return;
                    }
                }

                System.Console.WriteLine("endreads, startremove " + thread_num);

                // remove the values
                for (int i = 0; i < datavalues.Length; i++) {
                    string data = datavalues[i].ToString();
                    string key = this.composeKey(thread_num, data);
                    db.setValue(new RecordKey().appendParsedKey(key), RecordUpdate.DeletionTombstone());
                    Interlocked.Increment(ref num_removals);

                }
            }