For the above logic, the code sample is attached here:
void CopyStream(Stream inputStream, Stream outputStream)
{
var buffer = new byte[1024];
int bytesRead;
while((bytesRead = inputStream.Read(buffer, 0, buffer.Length)) > 0)
{
outputStream.Write(buffer, 0, bytesRead);
if(cancelled){
return;
}
}
}