Concurrent Programming

Size: px
Start display at page:

Download "Concurrent Programming"

Transcription

1 Concurrent Programming Adam Przybyłek, 2016 przybylek.wzr.pl This work is licensed under a Creative Commons Attribution 4.0 International License.

2 Task Parallel Library (TPL) scales the degree of concurrency dynamically to most efficiently use all the processors that are available handles the partitioning of the work, thread scheduling, state management, and other low-level details is based on the concept of a task, which represents an asynchronous operation System.Threading.Tasks.Task a task that does not return a value System.Threading.Tasks.Task<TResult> a task that returns a value provides support for parallel loops and regions through thesystem.threading.tasks.parallel class

3 Creating and Starting Tasks Task.Factory.StartNew Explicitly Task taska = Task.Run ( //Action () => Console.WriteLine("task A") taska.wait( Task.Factory.StartNew<int> Task<int> taskb = Task.Run<int> ( //Func<int> () => { int sum = 0; for (int i = 0; i < 100; i++) sum += i; return sum; Console.WriteLine(taskB.Result

4 Passing a Parameter to a Task Task taskc = Task.Factory.StartNew( //Action<object> (str) => Console.WriteLine(str), "task C" //state taskc.wait( string state = (string)taskc.asyncstate; Console.WriteLine(state Task<int> taskd = Task.Factory.StartNew<int>( //Func<object,int> (obj) => { int max = (int)obj; int sum = 0; for (int i = 0; i < max; i++) sum += i; return sum;, 100 //state Console.WriteLine(taskD.Result

5 Chaining Tasks Together (1) Task<int> taska = Task.Factory.StartNew( //Func<int> () => { int sum = 0; for (int i=1; i<100; i++) sum += i; return sum; Task<double> taskb = taska.continuewith<double>(//func<task,double> (prev) => { return prev.result / 100.0; Task taskc = taskb.continuewith( //Action<Task> (prev) => Console.WriteLine(prev.Result) taskc.wait(

6 Chaining Tasks Together (2) Task<int> taska = Task.Run( //Func<int> () => { return 100; Task<int> taskb = Task.Run( //Func<int> () => { return 200; Task[] work = new Task[] { taska, taskb ; Task finaltask = Task.Factory.ContinueWhenAll(work, //Action<Task[]> (tasks) => { long sum = 0; foreach (Task<int> task in tasks) sum += task.result; Console.WriteLine(sum // Perform additional processing here finaltask.wait(

7 Creating and running tasks implicitly Parallel.Invoke( () => Console.WriteLine("Action 1"), () => Console.WriteLine("Action 2"), () => Console.WriteLine("Action 3")

8 Parallel Loops for(int i = 0; i < 100; i++) { Console.WriteLine("{0^2 = {1", i, i * i Parallel.For(0, 100, i => { Console.WriteLine("{0^2 = {1", i, i * i string[] words = new string[] {"apple", "plum", "cherry"; foreach(string word in words) { char[] tmp = word.reverse().toarray( Console.WriteLine(new string(tmp) Parallel.ForEach<string>(words, word => { char[] tmp = word.reverse().toarray( Console.WriteLine(new string(tmp)

9 Using the BackgroundWorker component 1. Create an instance of the BackgroundWorker class. 2. Add a handler for the DoWork event. The handler should contain the code that you need to perform on a separate thread. Use BackgroundWorker.ReportProgress(int) to report the status of the operation. Periodically check the CancellationPending property, and if it is true, terminate the job. 3. Add a handler for the ProgressChanged event. The handler runs on the UI thread. 4. Set the WorkerReportsProgress property to true. 5. Add a handler for the RunWorkerCompleted event. The handler runs on the UI thread. 6. Call the BackgroundWorker.RunWorkerAsync() method to raise the DoWork event. 7. Optionally, call BackgroundWorker.CancelAsync() to set the CancellationPending property totrue.

10 A BackgroundWorker example private void button1_click(object s, EventArgs e) { BackgroundWorker bw = new BackgroundWorker( bw.dowork += ((object sender, DoWorkEventArgs args) => { BackgroundWorker worker = sender as BackgroundWorker; int n = (int)args.argument; //Extract the argument int i; //Perform long running process for (i=0; i<n; i++) worker.reportprogress(i+1 args.result = i; bw.progresschanged += ((object sender, ProgressChangedEventArgs args) => { //Update label in UI with progress label1.text = args.progresspercentage.tostring( bw.runworkercompleted += ((object sender, RunWorkerCompletedEventArgs args) => { //Update the user interface MessageBox.Show("Result: " + args.result bw.workerreportsprogress = true; bw.runworkerasync(100 Walkthrough: Running an Operation in the Background

11 Calling Synchronous Methods Asynchronously define a delegate type with the same signature as the method you want to call; CLR provides each delegate type with two methods, to enable asynchronous invocation of the delegate: IAsyncResult BeginInvoke(, AsyncCallback callback, object state) initiates the asynchronous call returns immediately and does not wait for the asynchronous call to complete EndInvoke(IAsyncResult) blocks until the asynchronous call has completed returns the result of the asynchronous call create a delegate object that "points to" the target method callbegininvoke

12 Waiting for an Asynchronous Method to Complete either useendinvoke to wait for an asynchronous method or poll the IAsyncResult returned by BeginInvoke to determine when the asynchronous call has completed, and then call EndInvoke or use the AsyncCallback delegate: pass a delegate for a callback method to BeginInvoke the callback method is executed on a ThreadPool thread when the asynchronous call completes callendinvoke from the callback method

13 Polling for Asynchronous Call Completion class Program { public static int Add(int x, int y) { return x + y; static void Main(string[] args) { Func<int, int, int> op = Add; IAsyncResult result; result= op.begininvoke(4, 3, null, null while (result.iscompleted == false) { // Perform additional processing here Console.Write("." int sum = op.endinvoke(result Console.WriteLine(sum

14 Executing a Callback Method When an Asynchronous Call Completes class Program { public static int Add(int x, int y) { return x + y; static void Main(string[] args) { Func<int, int, int> op = Add; IAsyncResult result = op.begininvoke(4, 3, new AsyncCallback(AddCallback), "state" // Perform additional processing here Console.ReadLine( public static void AddCallback(IAsyncResult result) { string state = (string)result.asyncstate; AsyncResult asyncresult = (AsyncResult) result; Func<int, int, int> op; op = (Func<int, int, int>) asyncresult.asyncdelegate; int sum = op.endinvoke(result Console.WriteLine("state: {0, result: {1", state, sum

15 Pre-Built Asynchronous Methods are essential for activities that are potentially blocking are provided by classes throughout the.net Standard Library come in pairs: BeginXyz to start the work EndXyz to collect the results when it is complete

16 Asynchronously Querying the DNS static void Main(string[] args) { string[] names = { " " " " ; for(int i = 0; i < names.length; i++) { Dns.BeginGetHostAddresses(names[i], MyCallback, names[i] Console.ReadLine( static void MyCallback(IAsyncResult result) { IPAddress[] ip = Dns.EndGetHostAddresses(result Console.WriteLine("{0: {1", result.asyncstate, ip[0]

17 Async methods (1) asynchronous methods that are defined by using the async and await keywords put the async keyword in a method s declaration, and this tells the compiler that you intend to use asynchronous features in the method use the await keyword in an expression that may take some time to produce a result; it indicates that the remainder of the containing method should not execute until the asynchronous operation is complete, but it also causes the containing method to return immediately return one of the following types: Task<TResult>, Task, void end with an "Async" suffix by convention

18 Async methods (2) if you apply await to a Task<T>, it becomes an await expression, and the whole expression has type T if you apply await to a Task, it becomes an await statement, and can t be assigned to anything private async void dumpwebpageasync(string uri) { WebClient webclient = new WebClient( string page = await webclient.downloadstringtaskasync(uri MessageBox.Show(page returnstask<string>

19 Accessing the Web by Using an Async Method private async void button1_click(object s, EventArgs e) { WebClient webclient = new WebClient( string url = " byte[] data = await webclient.downloaddatataskasync(url Stream stream = new MemoryStream(data Image myimage = Image.FromStream(stream picturebox1.image = myimage; stream.dispose( webclient.dispose(

20 Accessing the Web by Using Tasks private void button2_click(object sender, EventArgs e) { WebClient webclient = new WebClient( string url = " Task<byte[]> task = webclient.downloaddatataskasync(url Task nameless = task.continuewith( (prev) => { byte[] data = prev.result; Stream stream = new MemoryStream(data Image myimage = Image.FromStream(stream picturebox1.image = myimage; stream.dispose( webclient.dispose(, TaskScheduler.FromCurrentSynchronizationContext()

21 Network Programming Adam Przybyłek, 2016 przybylek.wzr.pl This work is licensed under a Creative Commons Attribution 4.0 International License.

22 TCP Services TcpClient requests data from an Internet resource TcpListener waits for incoming requests and then creates either a Socket or a TcpClient that manages the connection to the client

23 TcpTimeServer TcpListener listener = new TcpListener(IPAddress.Any, listener.start( while(true) { TcpClient newclient = listener.accepttcpclient( Task.Factory.StartNew((c) => { TcpClient client = (TcpClient)c; Stream stream = client.getstream( String time = DateTime.Now.ToString( byte[] bytetime = Encoding.ASCII.GetBytes(time stream.write(bytetime, 0, bytetime.length stream.close( client.close(, newclient //listener.stop(

24 TcpTimeClient int port = 13131; String server = "localhost"; TcpClient client = new TcpClient(server, port Stream stream = client.getstream( byte[] bytes = new byte[1024]; int n = stream.read(bytes, 0, bytes.length Console.WriteLine( Encoding.ASCII.GetString(bytes, 0, n) client.close(

25 UDP Services UdpClient provides simple methods for sending and receiving UDP datagrams IPEndPoint represents a network endpoint as an IP address and a port number

26 UdpTimeServer IPEndPoint localipendpoint = new IPEndPoint(IPAddress.Any, UdpClient myudpclient = new UdpClient(localIPEndPoint IPEndPoint remoteipendpoint; byte[] data; string msg; while (true) { remoteipendpoint = new IPEndPoint(IPAddress.Any, 0 data = myudpclient.receive(ref remoteipendpoint msg = Encoding.ASCII.GetString(data, 0, data.length Console.WriteLine("{0> {1", remoteipendpoint, msg msg = DateTime.Now.ToString( data = Encoding.ASCII.GetBytes(msg myudpclient.sendasync(data, data.length, remoteipendpoint //myudpclient.close(

27 UdpTimeClient int port = 13131; string server = "localhost"; UdpClient myudpclient = new UdpClient( myudpclient.connect(server, port string msg = "What's the time?"; byte[] data = Encoding.ASCII.GetBytes(msg myudpclient.send(data, data.length IPEndPoint remoteipendpoint = new IPEndPoint(IPAddress.Any, 0 data = myudpclient.receive(ref remoteipendpoint msg = Encoding.ASCII.GetString(data, 0, data.length Console.WriteLine(msg myudpclient.close(

Parallelizing Ocean plug-in computations using the Background Worker + PFX pattern

Parallelizing Ocean plug-in computations using the Background Worker + PFX pattern Parallelizing Ocean plug-in computations using the Background Worker + PFX pattern Dmitriy Repin Program Architect, Schlumberger PTS Ocean Development Framework User Meeting Houston, October 24, 2014 2014

More information

C# Asynchronous Programming Model

C# Asynchronous Programming Model Spring 2014 C# Asynchronous Programming Model A PRACTICAL GUIDE BY CHRIS TEDFORD TABLE OF CONTENTS Introduction... 2 Background Information... 2 Basic Example... 3 Specifications and Usage... 4 BeginInvoke()...

More information

Simplifying Asynchronous Programming with Microsoft Visual Studio Async CTP

Simplifying Asynchronous Programming with Microsoft Visual Studio Async CTP Simplifying Asynchronous Programming with Microsoft Visual Studio Async CTP Nelson Morais Universidade Lusófona de Humanidades e Tecnologias Campo Grande, 376 1749-021 Lisboa (Portugal) +351 91 732 46

More information

Asynchronous Programming Model (APM) 1 Calling Asynchronous Methods Using IAsyncResult 4 Blocking Application Execution by Ending an Async Operation

Asynchronous Programming Model (APM) 1 Calling Asynchronous Methods Using IAsyncResult 4 Blocking Application Execution by Ending an Async Operation Asynchronous Programming Model (APM) 1 Calling Asynchronous Methods Using IAsyncResult 4 Blocking Application Execution by Ending an Async Operation 5 Blocking Application Execution Using an AsyncWaitHandle

More information

Asynchronous Programming

Asynchronous Programming Asynchronous Programming Agenda Why async priogramming The Task abstraction Creating Tasks Passing data into tasks and retrieving results Cancellation Task dependency Task Scheduling 2 2 The Benefits of

More information

Multiple processes can run in parallel on a single computer and multiple threads can run in parallel in a single process.

Multiple processes can run in parallel on a single computer and multiple threads can run in parallel in a single process. EE 356 Notes on Threading A process is a program in execution. In an operating system a process has a well-defined state. A five-state model of a process includes: New a process is admitted for high-level

More information

The Various Faces of the.net Task Parallel Library

The Various Faces of the.net Task Parallel Library The Various Faces of the.net Task Parallel Library Luc Bläser Hochschule für Technik Rapperswil Multicore@Siemens 2015 5 Feb 2015, Nuremberg The.NET Task Parallel Library (TPL) State of the art in.net

More information

Sri Lanka Institute of Information Technology System Programming and Design II Year 3 Tutorial 06

Sri Lanka Institute of Information Technology System Programming and Design II Year 3 Tutorial 06 Sri Lanka Institute of Information Technology System Programming and Design II Year 3 Tutorial 06 1. What is an asynchronous call? How does it differ from a synchronous call? In synchronous call, the caller

More information

Threads are lightweight processes responsible for multitasking within a single application.

Threads are lightweight processes responsible for multitasking within a single application. Threads Threads are lightweight processes responsible for multitasking within a single application. The class Thread represents an object-oriented wrapper around a given path of execution. The class Thread

More information

Event-based Asynchronous Pattern Overview 1 Implementing the Event-based Asynchronous Pattern 5 Deciding When to Implement the Event-based

Event-based Asynchronous Pattern Overview 1 Implementing the Event-based Asynchronous Pattern 5 Deciding When to Implement the Event-based Event-based Asynchronous Pattern Overview 1 Implementing the Event-based Asynchronous Pattern 5 Deciding When to Implement the Event-based Asynchronous Pattern 12 Implementing Component with the Event-based

More information

Network Programming. ò Network Protocols ò Communication Connection ò Naming

Network Programming. ò Network Protocols ò Communication Connection ò Naming Network Programming Network Programming ò Network Protocols ò Communication Connection ò Naming Why are these important? You are developing a multi-player game, you will need to know how to: ò Establish

More information

The Task-based Asynchronous Pattern

The Task-based Asynchronous Pattern The Task-based Asynchronous Pattern Stephen Toub, Microsoft February 2012 Contents Overview... 2 The Task-based Asynchronous Pattern Defined... 2 Naming, Parameters, and Return Types... 2 Behavior... 3

More information

Networking Haim Michael. All Rights Reserved.

Networking Haim Michael. All Rights Reserved. Networking 1 Introduction The C# programming language offers variety of networking related classes in the System.Net.* name space. These classes support various standard network protocols, such as HTTP,

More information

Programming in.net. Microsoft Development Center Serbia programming course. Lesson 8 Parallelism and Threading in.net

Programming in.net. Microsoft Development Center Serbia programming course. Lesson 8 Parallelism and Threading in.net Programming in.net Microsoft Development Center Serbia programming course Lesson 8 Parallelism and Threading in.net Example 1 Our first example shows basics about threading in C#. It covers basic thread

More information

C# Java. C# Types Naming Conventions. Distribution and Integration Technologies. C# C++.NET A C# program is a collection of: C C++ C# Language

C# Java. C# Types Naming Conventions. Distribution and Integration Technologies. C# C++.NET A C# program is a collection of: C C++ C# Language C# Java Distribution and Integration Technologies C# Language C C++ C# C++.NET A C# program is a collection of: Classes Structs Interfaces Delegates Enums (can be grouped in namespaces) One entry point

More information

Distribution and Integration Technologies. C# Language

Distribution and Integration Technologies. C# Language Distribution and Integration Technologies C# Language Classes Structs Interfaces Delegates Enums C# Java C C++ C# C++.NET A C# program is a collection of: (can be grouped in namespaces) One entry point

More information

class Class1 { /// <summary> /// The main entry point for the application. /// </summary>

class Class1 { /// <summary> /// The main entry point for the application. /// </summary> Project 06 - UDP Client/Server Applications In this laboratory project you will build a number of Client/Server applications using C# and the.net framework. The first will be a simple console application

More information

The Open Core Interface SDK has to be installed on your development computer. The SDK can be downloaded at:

The Open Core Interface SDK has to be installed on your development computer. The SDK can be downloaded at: This document describes how to create a simple Windows Forms Application using some Open Core Interface functions in C# with Microsoft Visual Studio Express 2013. 1 Preconditions The Open Core Interface

More information

Task-based Asynchronous Pattern 1 Implementing the Task-based Asynchronous Pattern 8 Interop with Other Asynchronous Patterns and Types 14

Task-based Asynchronous Pattern 1 Implementing the Task-based Asynchronous Pattern 8 Interop with Other Asynchronous Patterns and Types 14 Task-based Asynchronous Pattern 1 Implementing the Task-based Asynchronous Pattern 8 Interop with Other Asynchronous Patterns and Types 14 Task-based Asynchronous Pattern (TAP) https://msdn.microsoft.com/en-us/library/hh873175(d=printer,v=vs.110).aspx

More information

Asynchronous Functions in C#

Asynchronous Functions in C# Asynchronous Functions in C# Asynchronous operations are methods and other function members that may have most of their execution take place after they return. In.NET the recommended pattern for asynchronous

More information

UriQuery query.add + query.tostring()

UriQuery query.add + query.tostring() Employee employee = Employees.CurrentItem as Employee; if (employee!= null) UriQuery query = new UriQuery(); query.add("id", employee.id); _regionmanager.requestnavigate(regionnames.tabregion, new Uri("EmployeeDetailsView"

More information

Asynchronous Programming Demystified

Asynchronous Programming Demystified Asynchronous Programming Demystified http://submain.com/webcasts/asynchronous-programming-demystified/ for the webcast recording, slides and demo code download 1/14/2015 Webcast Housekeeping Audio Connect

More information

Santiago Canyon College Computer Science

Santiago Canyon College Computer Science P a g e 1 Santiago Canyon College Computer Science The.Net Threading Model Introduction The purpose of this paper is to introduce you to multi-threading in Visual Studio. Learning how to take advantage

More information

5 Delegates and Events

5 Delegates and Events 07 5802 CH05.qxd 11/14/03 1:08 PM Page 135 5 Delegates and Events 5.0. Introduction Behavior largely consists of responding to events. Something occurs, and it is our investigation and response to that

More information

Threads & Networking

Threads & Networking Threads & Networking C# offers facilities for multi threading and network programming an application roughly corresponds to a process, handled by the OS time sharing simulates multi tasking inside an application

More information

C# Threading. Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh

C# Threading. Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh C# Threading Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 1 2018/19 0 Based on: "An Introduction to programming with

More information

CPSC 441 Tutorial - 11 UDP Socket Programming Department of Computer Science University of Calgary

CPSC 441 Tutorial - 11 UDP Socket Programming Department of Computer Science University of Calgary CPSC 441 Tutorial - 11 UDP Programming Department of Computer Science University of Calgary TCP Vs UDP Input: receives packet (TCP receives byte stream ) Output: sends packet (TCP sends byte stream ) What

More information

Computer Networks with (Network Programming)

Computer Networks with (Network Programming) Computer Networks with (Network Programming) Introduction to Programming with UDP Lecture #8 Department of Electrical and Electronics Engineering Çukurova University TCP vs UDP Both use port numbers Application-specific

More information

Chapter 13 Working with Threads

Chapter 13 Working with Threads Chapter 13 Working with Threads Until relatively recently only advanced programmers understood and knew how to employ threads in application programs. Part of the problem was that using threads was not

More information

VS08 This One Goes to Going Parallel with PFX, PLINQ, TPL and Async Keywords

VS08 This One Goes to Going Parallel with PFX, PLINQ, TPL and Async Keywords VS08 This One Goes to Going Parallel with PFX, PLINQ, TPL and Async Keywords Brian Noyes Chief Architect, IDesign Inc (www.idesign.net) brian.noyes@idesign.net, @briannoyes About Brian Chief Architect

More information

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com 70-483 MCSA Universal Windows Platform A Success Guide to Prepare- Programming in C# edusum.com Table of Contents Introduction to 70-483 Exam on Programming in C#... 2 Microsoft 70-483 Certification Details:...

More information

BackgroundWorker Component Overview 1 Multithreading with the BackgroundWorker Component 3 Walkthrough Running an Operation in the Background 10 How

BackgroundWorker Component Overview 1 Multithreading with the BackgroundWorker Component 3 Walkthrough Running an Operation in the Background 10 How BackgroundWorker Component Overview 1 Multithreading with the BackgroundWorker Component 3 Walkthrough Running an Operation in the Background 10 How to Download a File in the Background 15 How to Implement

More information

BITS-Pilani Hyderabad Campus

BITS-Pilani Hyderabad Campus BITS-Pilani Hyderabad Campus CS C461/IS C461/CS F303/ IS F303 (Computer Networks) Laboratory 4 Aim: To give an introduction to Socket Programming in TCP and UDP. TCP Socket Programming: A socket is the

More information

Professional ASP.NET Web Services : Asynchronous Programming

Professional ASP.NET Web Services : Asynchronous Programming Professional ASP.NET Web Services : Asynchronous Programming To wait or not to wait; that is the question! Whether or not to implement asynchronous processing is one of the fundamental issues that a developer

More information

Introduction to C# Applications

Introduction to C# Applications 1 2 3 Introduction to C# Applications OBJECTIVES To write simple C# applications To write statements that input and output data to the screen. To declare and use data of various types. To write decision-making

More information

EEE-448 COMPUTER NETWORKS (Programming) Week -6 C# & IP Programming. The StringBuilder Class. StringBuilder Classes. StringBuilder with Append

EEE-448 COMPUTER NETWORKS (Programming) Week -6 C# & IP Programming. The StringBuilder Class. StringBuilder Classes. StringBuilder with Append EEE-448 COMPUTER NETWORKS (Programming) Week -6 C# & IP Programming Turgay IBRIKCI, PhD EEE448 Computer Networks Spring 2011 EEE448 Computer Networks Spring 2011 The StringBuilder Class The StringBuilder

More information

Chapter 4: Processes

Chapter 4: Processes Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Process Concept An operating

More information

An Async Primer. By Bill Wagner August Introduction

An Async Primer. By Bill Wagner August Introduction An Async Primer By Bill Wagner August 2012 Introduction The C# 5.0 release might seem small, given that the single major feature is the addition of async / await keywords to support asynchronous programming.

More information

Network Operation System. netstat. ipconfig/tracert/ping. nslookup EEE 448 Computer Networks

Network Operation System. netstat. ipconfig/tracert/ping. nslookup EEE 448 Computer Networks EEE 448 Computer Networks with (Network Programming) Lecture #4 Dept of Electrical and Electronics Engineering Çukurova University Network Operation System When you are on the internet or are working in

More information

Asynchronous Programming with Async and Await 1 Await Operator 12 Async 15 Accessing the Web by Using Async and Await 18 Extend the Async Walkthrough

Asynchronous Programming with Async and Await 1 Await Operator 12 Async 15 Accessing the Web by Using Async and Await 18 Extend the Async Walkthrough Asynchronous Programming with Async and Await 1 Await Operator 12 Async 15 Accessing the Web by Using Async and Await 18 Extend the Async Walkthrough by Using Task.WhenAll 33 Make Multiple Web Requests

More information

Manage program flow. Have you read page xxi? Objectives in this chapter:

Manage program flow. Have you read page xxi? Objectives in this chapter: CHAPTER 1 Manage program flow If you could build only programs that execute all their logic from top to bottom, it would not be feasible to build complex applications. Fortunately, C# and the.net Framework

More information

API Guide MSS-8 and MVS-16

API Guide MSS-8 and MVS-16 API Guide and MVS-16 Page 1-8 Channel Matrix Switcher Page 10-16 Channel Matrix Switcher and Multi Viewer MVS-16 API Guide for RS232 RS232 Connection: Port Settings: Bps 9600, Data bits 8, Parity None,

More information

Object Oriented Programming in C#

Object Oriented Programming in C# Introduction to Object Oriented Programming in C# Class and Object 1 You will be able to: Objectives 1. Write a simple class definition in C#. 2. Control access to the methods and data in a class. 3. Create

More information

The Network. Multithreading. This tutorial can be found on -

The Network. Multithreading. This tutorial can be found on - This tutorial can be found on - http://www.informit.com/articles/article.aspx?p=25462&seqnum=5 Instant messaging is sweeping the world, and is rapidly replacing email as the preferred electronic communications

More information

Learn C# Errata. 3-9 The Nullable Types The Assignment Operators

Learn C# Errata. 3-9 The Nullable Types The Assignment Operators 1 The following pages show errors from the original edition, published in July 2008, corrected in red. Future editions of this book will be printed with these corrections. We apologize for any inconvenience

More information

CPSC 441 UDP Socket Programming. Department of Computer Science University of Calgary

CPSC 441 UDP Socket Programming. Department of Computer Science University of Calgary CPSC 441 UDP Socket Programming Department of Computer Science University of Calgary Socket programming using UDP (vs TCP) UDP: no connection between client and server vno handshaking vsender explicitly

More information

Event Handling Java 7

Event Handling Java 7 Event Handling Java 7 Waterford Institute of Technology September 25, 2014 John Fitzgerald Waterford Institute of Technology, Event Handling Java 7 1/24 Inheritance Inheritance v Interface Inheritance

More information

Back to the future: sockets and relational data in your (Windows) pocket

Back to the future: sockets and relational data in your (Windows) pocket Back to the future: sockets and relational data in your (Windows) pocket Dragos Manolescu Microsoft, Windows Phone Engineering Hewlett-Packard Cloud Services Background APIs Performance and Health Data

More information

VISUAL PROGRAMMING_IT0309 Semester Number 05. G.Sujatha & R.Vijayalakshmi Assistant professor(o.g) SRM University, Kattankulathur

VISUAL PROGRAMMING_IT0309 Semester Number 05. G.Sujatha & R.Vijayalakshmi Assistant professor(o.g) SRM University, Kattankulathur School of Computing, 12/26/2012 1 VISUAL PROGRAMMING_IT0309 Semester Number 05 G.Sujatha & R.Vijayalakshmi Assistant professor(o.g) SRM University, Kattankulathur UNIT 1 School of Computing, Department

More information

Introduction to Sockets 9/25/14

Introduction to Sockets 9/25/14 Introduction to Sockets 9/25/14 81 Remote communication Inter-process communication is at the heart of all distributed systems Using the network protocol stack on a node is the only way to communicate

More information

Chapter 13: Handling Events

Chapter 13: Handling Events Chapter 13: Handling Events Event Handling Event Occurs when something interesting happens to an object Used to notify a client program when something happens to a class object the program is using Event

More information

SERG. A Study and Toolkit for Asynchronous Programming in C#

SERG. A Study and Toolkit for Asynchronous Programming in C# Delft University of Technology Software Engineering Research Group Technical Report Series A Study and Toolkit for Asynchronous Programming in C# Semih Okur, David L. Hartveld, Danny Dig and Arie van Deursen

More information

204111: Computer and Programming

204111: Computer and Programming 204111: Computer and Programming Week 4: Control Structures t Monchai Sopitkamon, Ph.D. Overview Types of control structures Using selection structure Using repetition structure Types of control ol structures

More information

The Future of Parallel Programming in the.net Framework. Igor Ostrovsky Software Engineer Microsoft Corporation

The Future of Parallel Programming in the.net Framework. Igor Ostrovsky Software Engineer Microsoft Corporation The Future of Parallel Programming in the.net Framework Igor Ostrovsky Software Engineer Microsoft Corporation DISCLAIMER This is a talk about the near future All content is subject to change. The technology

More information

Concurrency: An Overview

Concurrency: An Overview CHAPTER 1 Concurrency: An Overview Concurrency is a key aspect of beautiful software. For decades, concurrency was possible but difficult. Concurrent software was difficult to write, difficult to debug,

More information

Communication in Distributed Systems: Sockets Programming. Operating Systems

Communication in Distributed Systems: Sockets Programming. Operating Systems Communication in Distributed Systems: Sockets Programming Operating Systems TCP/IP layers Layers Message Application Transport Internet Network interface Messages (UDP) or Streams (TCP) UDP or TCP packets

More information

PES INSTITUTE OF TECHNOLOGY

PES INSTITUTE OF TECHNOLOGY Seventh Semester B.E. IA Test-I, 2014 USN 1 P E I S PES INSTITUTE OF TECHNOLOGY C# solution set for T1 Answer any 5 of the Following Questions 1) What is.net? With a neat diagram explain the important

More information

Distributed Systems Recitation 2. Tamim Jabban

Distributed Systems Recitation 2. Tamim Jabban 15-440 Distributed Systems Recitation 2 Tamim Jabban Agenda Communication via Sockets in Java (this enables you to complete PS1 and start P1 (goes out today!)) Multi-threading in Java Coding a full Client-Server

More information

escl* Communication Reference Guide

escl* Communication Reference Guide escl* Communication Reference Guide *SCL over Ethernet 920 0032a3 escl Communication Reference Manual Page 1 Table of Contents 6/26/2010 Introduction... 3 Getting Started... 3 Connecting the Drive to Your

More information

DC69 C# and.net JUN 2015

DC69 C# and.net JUN 2015 Solutions Q.2 a. What are the benefits of.net strategy advanced by Microsoft? (6) Microsoft has advanced the.net strategy in order to provide a number of benefits to developers and users. Some of the major

More information

CS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question)

CS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question) CS/B.TECH/CSE(New)/SEM-5/CS-504D/2013-14 2013 OBJECT ORIENTED PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give their answers

More information

Software Exception Flow Analysis for WPF C# Asynchronous Programs Using Microsoft Visual Studio

Software Exception Flow Analysis for WPF C# Asynchronous Programs Using Microsoft Visual Studio Software Exception Flow Analysis for WPF C# Asynchronous Programs Using Microsoft Visual Studio Summary Recently, I was working on an implementation of a new software product feature based on asynchronous

More information

Class, Variable, Constructor, Object, Method Questions

Class, Variable, Constructor, Object, Method Questions Class, Variable, Constructor, Object, Method Questions http://www.wideskills.com/java-interview-questions/java-classes-andobjects-interview-questions https://www.careerride.com/java-objects-classes-methods.aspx

More information

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved. Java How to Program, 10/e Education, Inc. All Rights Reserved. Each class you create becomes a new type that can be used to declare variables and create objects. You can declare new classes as needed;

More information

Asynchronous Events on Linux

Asynchronous Events on Linux Asynchronous Events on Linux Frederic.Rossi@Ericsson.CA Open System Lab Systems Research June 25, 2002 Ericsson Research Canada Introduction Linux performs well as a general purpose OS but doesn t satisfy

More information

CIS*2430 (Fall 2012) Miterm Exam (I) Solutions

CIS*2430 (Fall 2012) Miterm Exam (I) Solutions CIS*2430 (Fall 2012) Miterm Exam (I) Solutions Instructor: F. Song Part I: Multiple Choice (4 marks each): circle the choice for the right answer. 1. An object-oriented programming language (a) uses structured

More information

The F# Team Microsoft

The F# Team Microsoft The F# Team Microsoft Asynchronous and Parallel Programming with F# Workflows Some other F# Language Oriented Programming Techniques Lots of Examples F# is: F# is a.net programming language Functional

More information

Transport layer protocols. Lecture 15: Operating Systems and Networks Behzad Bordbar

Transport layer protocols. Lecture 15: Operating Systems and Networks Behzad Bordbar Transport layer protocols Lecture 15: Operating Systems and Networks Behzad Bordbar 78 Interprocess communication Synchronous and asynchronous comm. Message destination Reliability Ordering Client Server

More information

Java Support for developing TCP Network Based Programs

Java Support for developing TCP Network Based Programs Java Support for developing TCP Network Based Programs 1 How to Write a Network Based Program (In Java) As mentioned, we will use the TCP Transport Protocol. To communicate over TCP, a client program and

More information

OOPs Concepts. 1. Data Hiding 2. Encapsulation 3. Abstraction 4. Is-A Relationship 5. Method Signature 6. Polymorphism 7. Constructors 8.

OOPs Concepts. 1. Data Hiding 2. Encapsulation 3. Abstraction 4. Is-A Relationship 5. Method Signature 6. Polymorphism 7. Constructors 8. OOPs Concepts 1. Data Hiding 2. Encapsulation 3. Abstraction 4. Is-A Relationship 5. Method Signature 6. Polymorphism 7. Constructors 8. Type Casting Let us discuss them in detail: 1. Data Hiding: Every

More information

Previous C# Releases. C# 3.0 Language Features. C# 3.0 Features. C# 3.0 Orcas. Local Variables. Language Integrated Query 3/23/2007

Previous C# Releases. C# 3.0 Language Features. C# 3.0 Features. C# 3.0 Orcas. Local Variables. Language Integrated Query 3/23/2007 Previous C# Releases C# 3.0 Language Features C# Programming March 12, 2007 1.0 2001 1.1 2003 2.0 2005 Generics Anonymous methods Iterators with yield Static classes Covariance and contravariance for delegate

More information

Contents. Java RMI. Java RMI. Java RMI system elements. Example application processes/machines Client machine Process/Application A

Contents. Java RMI. Java RMI. Java RMI system elements. Example application processes/machines Client machine Process/Application A Contents Java RMI G53ACC Chris Greenhalgh Java RMI overview A Java RMI example Overview Walk-through Implementation notes Argument passing File requirements RPC issues and RMI Other problems with RMI 1

More information

Java and C# in Depth Carlo A. Furia, Marco Piccioni, Bertrand Meyer

Java and C# in Depth Carlo A. Furia, Marco Piccioni, Bertrand Meyer Java and C# in Depth Carlo A. Furia, Marco Piccioni, Bertrand Meyer Exercise Session Week 2 Agenda Ø Quizzes Ø More quizzes Ø And even more quizzes 2 Quiz 1. What will be printed? Ø Integers public class

More information

Midterm I - CSE11 Fall 2013 CLOSED BOOK, CLOSED NOTES 50 minutes, 100 points Total.

Midterm I - CSE11 Fall 2013 CLOSED BOOK, CLOSED NOTES 50 minutes, 100 points Total. Midterm I - CSE11 Fall 2013 CLOSED BOOK, CLOSED NOTES 50 minutes, 100 points Total. Name: ID: Problem 1) (8 points) For the following code segment, what are the values of i, j, k, and d, after the segment

More information

JAVA - NETWORKING (SOCKET PROGRAMMING)

JAVA - NETWORKING (SOCKET PROGRAMMING) JAVA - NETWORKING (SOCKET PROGRAMMING) http://www.tutorialspoint.com/java/java_networking.htm Copyright tutorialspoint.com The term network programming refers to writing programs that execute across multiple

More information

EEE-448 COMPUTER NETWORKS (Programming) Week 12 IP, DNS and C# IP Network Addressing. Objective. What Ever Happened to IPv5? Why a New IP?

EEE-448 COMPUTER NETWORKS (Programming) Week 12 IP, DNS and C# IP Network Addressing. Objective. What Ever Happened to IPv5? Why a New IP? EEE-448 COMPUTER NETWORKS (Programming) Week 12 IP, DNS and C# Turgay IBRIKCI, PhD EEE448 Computer Networks Spring 2011 EEE448 Computer Networks Spring 2011 Objective Basic of IPv6 Learn the basics of

More information

Center for Computation & Louisiana State University -

Center for Computation & Louisiana State University - Knowing this is Required Anatomy of a class A java program may start with import statements, e.g. import java.util.arrays. A java program contains a class definition. This includes the word "class" followed

More information

Chapter 2 Applications and

Chapter 2 Applications and Chapter 2 Applications and Layered Architectures Sockets Socket API API (Application Programming Interface) Provides a standard set of functions that can be called by applications Berkeley UNIX Sockets

More information

POINT OF FAILURES TOPICS .NET. msdn

POINT OF FAILURES TOPICS .NET. msdn 1 TOPICS POINT OF FAILURES msdn.net 2 THREADS TASKS msdn.net 3 KEY FEATURES msdn.net 4 TASK CREATION var task = new Task(Func func); task.start(); //... task.wait(); var task = Task.Run(Func

More information

IST311. Advanced Issues in OOP: Inheritance and Polymorphism

IST311. Advanced Issues in OOP: Inheritance and Polymorphism IST311 Advanced Issues in OOP: Inheritance and Polymorphism IST311/602 Cleveland State University Prof. Victor Matos Adapted from: Introduction to Java Programming: Comprehensive Version, Eighth Edition

More information

Distributed Systems Architecture

Distributed Systems Architecture Distributed Systems Architecture Lab Session 1. Introduction to ZeroC Ice Francisco Moya November 15, 2011 In this session we will learn to use basic Ice tools to develop a very

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

Objectives. Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments

Objectives. Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments Basics Objectives Introduce the core C# language features class Main types variables basic input and output operators arrays control constructs comments 2 Class Keyword class used to define new type specify

More information

*Java has included a feature that simplifies the creation of

*Java has included a feature that simplifies the creation of Java has included a feature that simplifies the creation of methods that need to take a variable number of arguments. This feature is called as varargs (short for variable-length arguments). A method that

More information

COMIC BOOK GRAPHIC NOVEL APPROACH TO ASYNC

COMIC BOOK GRAPHIC NOVEL APPROACH TO ASYNC KATHLEEN DOLLARD - CODERAPID @KATHLEENDOLLARD KATHLEENDOLLARD KATHLEEN@MVPS.ORG BLOG: HTTP://BLOGS.MSMVPS.COM/KATHLEEN HT TP://WWW.PLURALSIGHT.COM/AUTHOR/KATHLEEN - DOLLARD Puzzles Workshop Puzzles EXPLORING

More information

DC69 C# &.NET JUNE C# is a simple, modern, object oriented language derived from C++ and Java.

DC69 C# &.NET JUNE C# is a simple, modern, object oriented language derived from C++ and Java. Q.2 a. What is C#? Discuss its features in brief. 1. C# is a simple, modern, object oriented language derived from C++ and Java. 2. It aims to combine the high productivity of Visual Basic and the raw

More information

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University CS 333 Introduction to Operating Systems Class 3 Threads & Concurrency Jonathan Walpole Computer Science Portland State University 1 The Process Concept 2 The Process Concept Process a program in execution

More information

Assignment 1. Due date February 6, 2007 at 11pm. It must be submitted using submit command.

Assignment 1. Due date February 6, 2007 at 11pm. It must be submitted using submit command. Assignment 1 Due date February 6, 2007 at 11pm. It must be submitted using submit command. Note: submit 4213 a1 . Read the manpages ("man submit") for more details on the submit command. It is

More information

1 Shyam sir JAVA Notes

1 Shyam sir JAVA Notes 1 Shyam sir JAVA Notes 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write

More information

.Net Technologies. Components of.net Framework

.Net Technologies. Components of.net Framework .Net Technologies Components of.net Framework There are many articles are available in the web on this topic; I just want to add one more article over the web by explaining Components of.net Framework.

More information

CS111: PROGRAMMING LANGUAGE II

CS111: PROGRAMMING LANGUAGE II 1 CS111: PROGRAMMING LANGUAGE II Computer Science Department Lecture 1: Introduction Lecture Contents 2 Course info Why programming?? Why Java?? Write once, run anywhere!! Java basics Input/output Variables

More information

Distributed Systems Recitation 2. Tamim Jabban

Distributed Systems Recitation 2. Tamim Jabban 15-440 Distributed Systems Recitation 2 Tamim Jabban Project 1 Involves creating a Distributed File System (DFS) Released yesterday When/If done with PS1, start reading the handout Today: Socket communication!

More information

Array. Prepared By - Rifat Shahriyar

Array. Prepared By - Rifat Shahriyar Java More Details Array 2 Arrays A group of variables containing values that all have the same type Arrays are fixed length entities In Java, arrays are objects, so they are considered reference types

More information

Chapter 2 Application Layer

Chapter 2 Application Layer Chapter 2 Application Layer A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you can add, modify, and

More information

Class definition. complete definition. public public class abstract no instance can be created final class cannot be extended

Class definition. complete definition. public public class abstract no instance can be created final class cannot be extended JAVA Classes Class definition complete definition [public] [abstract] [final] class Name [extends Parent] [impelements ListOfInterfaces] {... // class body public public class abstract no instance can

More information

Kevin van Vechten Core OS

Kevin van Vechten Core OS Kevin van Vechten Core OS 2 3 Bill Bumgarner 4 (lambda (a) (add a d)) 10 timesrepeat:[pen turn:d; draw] z.each { val puts(val + d.to_s)} repeat(10, ^{ putc('0'+ d); }); 5 6 7 8 ^ 9 [myset objectspassingtest:

More information

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files CSC209 Review CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files ... and systems programming C basic syntax functions arrays structs

More information

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files. Compiler vs.

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files. Compiler vs. CSC209 Review CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files... and systems programming C basic syntax functions arrays structs

More information

CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Homework 4 (document version 1.0) Network Programming using C

CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Homework 4 (document version 1.0) Network Programming using C CSCI 4210 Operating Systems CSCI 6140 Computer Operating Systems Homework 4 (document version 1.0) Network Programming using C Overview This homework is due by 11:59:59 PM on Thursday, April 26, 2018.

More information

CSC209 Review. Yeah! We made it!

CSC209 Review. Yeah! We made it! CSC209 Review Yeah! We made it! 1 CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files 2 ... and C programming... C basic syntax functions

More information