This is an old revision of the document!
Table of Contents
Study Questions - Audio Creation
CDEx Settings
Bitrate = 80 kbps
Mono
Quality = Very high (q = 0)
Questions To Be Recorded
C7XQ1: What is the difference between the way the CLR deals with unhandled exceptions in the .NET Framwork 1.1 verses 2.0?
Answer: In 1.0, a backstop is provided for unhandled exceptions that occur on the following types of thread:
- A thread from the thread pool.
- A thread created with the Thread.Start method.
- A finaliser thread.
In 2.0, these exceptions are left to proceed naturally.
C7XQ2: The .NET Framework 2.0 provides a backstop for what three types of unhandled exceptions?
Answer:
- A ThreadAbortException thrown because of an Abort call.
- An AppDomainUnloadException thrown because the application domain is being unloaded.
- An internal exception thrown by the CLR or host process.
ITQ5: What is Conway's Law?
Answer: “Organisations which design systems are constrained to produce designs which are copies of the communication structures of these organisations.” - Melvin Conway, 1968.
PragC2Q16: What is code that glows in the dark?
Answer: Tracer code.
PragC2Q17: What are the four aspects of code that tracer code should share with production code and what is the one aspect that it does not?
Answer:
Shared: error checking, structuring, documentation and self-checking.
Not shared: Full functionality.
PragC2Q18: What are the five advantages of tracer code?
Answer:
- Users get to see something early.
- Develops a build structure to work in.
- Creates an integration platform.
- Creates something to demonstrate.
- Creates a better feel for progress.
PragC2Q19: What is the difference between tracer code and prototyping?
Answer: Prototyping generates disposable code. Tracer code is lean but complete and forms part of the skeleton of the final system.
C3L1Q2: In a regular expression, what is a lazy quantifier and how is one specified?
Answer: A lazy quantifier will match as little of the searched string as possible. A lazy quantifier is specified by adding a '?' symbol immediately after the quantifier.
C7L1Q11: What should the Thread.ThreadState property be used for?
Answer: Debugging only and not thread synchronisation.
C7L1Q12: Which thread state can a thread not return to once it has left it?
Answer: Unstarted
C7L1Q13: Which thread state can a thread not leave once it has entered it?
Answer: Stopped
C7L1Q14: Which thread state is a newly created thread in?
Answer: Unstarted
C7L1Q15: What happens to a thread's state when another thread calls Thread.Start on it?
Answer: At first, nothing. Then, when the thread responds to the call and actually starts running, it changes to Running.
C7L1Q16: What happens to a thread's state when another thread calls Thread.Suspend on it?
Answer: Thread.Suspend is depreciated and should not be used. But if it is, at first the thread's state changes to SuspendRequested. Then, when the thread responds to the call, it changes to Suspended.
C7L1Q17: What happens to a thread's state when another thread calls Thread.Abort on it?
Answer: At first the thread's state changes to AbortRequested. Then, when the thread responds to the call, it changes to Aborted.
C7L1Q18: What can trigger a thread to change its state to Running?
Answer:
- The thread responds to a Thread.Start call.
- Another thread calls Thread.Resume which is depreciated and should not be used.
- TODO: there may be a third.
C7L1Q19: How can a thread enter the WaitSleepJoin state?
Answer:
- The thread calls Monitor.Wait on another object.
- The thread calls Thread.Sleep.
- The thread calls Thread.Join on another thread.