OOP Class14
esse quam videri
Parallel
http://msdn.microsoft.com/en-us/library/dd460713(v=vs.110).aspx
samples: http://code.msdn.microsoft.com/windowsdesktop/Samples-for-Parallel-b4b76364
for <syntaxhighlight lang="csharp" line="1" > long count = 200000000; short[] shorts = new short[count]; for (long i = 0; i < count; i++)
{ shorts[i] = 1; }
</pre>
Parallel.For
short[] shortsP = new short[count]; Parallel.For(0, count, i => { shortsP[i] = 1; }); </csharp> Demo http://iam.colum.edu/oop/classsource/class15/AsyncConsoleApplication.zip http://iam.colum.edu/oop/classsource/class15/WindowsFormsApplicationAsync.zipAsync
http://msdn.microsoft.com/en-us/library/hh191443.aspx <syntaxhighlight lang="csharp" line="1" > private void buttonBlock_Click(object sender, EventArgs e)
{ textBox1.Text = DoLongCount(); }//Async call to async method private async void buttonAsync_Click(object sender, EventArgs e) { textBox1.Text = await DoLongAsyncCount(); }private string DoLongCount() { System.Threading.Thread.Sleep(1000); Count++; return "count is " + Count; }//Async Task private async Task<string> DoLongAsyncCount() { await Task.Delay(1000); Count++; return "count is " + Count; }</csharp>
Final Review
- Be very familiar with c# syntax
- Basic object types (int, bool, string)
- Conditional and Branching statements
- Arrays and Generics ie List
- Understand Classes and Inheritance.
- Use some advanced class features such as abstract classes and virtual methods that are overridden
- Understand class relationships
- Is A
- Has A
- Uses A
- Understand Encapsulation, Abstraction and Polymorphism
- Abstraction
- Each class should abstract its behavior in order to increase usability, reuse, and organization.
- Encapsulation
- Each class should contain all of the properties and methods it needs. It should only expose what is necessary to outside classes.
- Polymorphism
- many forms, same code interface but interchangeable classes
- Be able to read and create UML Diagrams
- Be able to recognize and use simple design patters