I want to return a photo using PhotoChooserTask like this:
private void getimage_Click(object sender, EventArgs e)
{
photoChooserTask = new PhotoChooserTask();
photoChooserTask.Completed += new EventHandler<PhotoResult>(photoChooserTask_Completed);
try
{
photoChooserTask.Show();
}
catch (System.InvalidOperationException ex)
{
MessageBox.Show("An error occurred.");
}
}
void photoChooserTask_Completed(object sender, PhotoResult ee)
{
if (ee.TaskResult == TaskResult.OK)
{
BitmapImage bmp = new BitmapImage();
bmp.SetSource(ee.ChosenPhoto);
if (ee.TaskResult == TaskResult.OK && ee.Error == null)
{
WriteableBitmap wb = new WriteableBitmap(bmp);
notes.Add(new chatinfo() { sendimage = bmp });
noteListBox.ItemsSource = null;
noteListBox.ItemsSource = notes;
}
}
}
but everytime the program arrived here:”bmp.SetSource(ee.ChosenPhoto);” A SocketException will be called.
private void OnRecieveFrom()
{
var receiveArgs = new SocketAsyncEventArgs();
receiveArgs.RemoteEndPoint = this.IPEndPoint;
receiveArgs.SetBuffer(new Byte[MAX_BUFFER_SIZE], 0, MAX_BUFFER_SIZE);
var strBdr = new StringBuilder();
receiveArgs.Completed += (__, result) =>
{
string message = CreateMessage(result);
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
this.RaiseReceived(message);
});
socket.ReceiveFromAsync(receiveArgs);
};
socket.ReceiveFromAsync(receiveArgs);
}
The SocketException is called by ” socket.ReceiveFromAsync(receiveArgs);”
I just want to get a photo from the phone,and there is not send or recieve operation.I don’t know why receive function was called.
Would the app lose the socket communication when it jumps to the photo album (the value “RemoteEndPoint” of socket change to null)? p.s. “socket” is an object of class “Socket”.
If so, should I recreate the “socket” every time the app jumps out?
Thank you!
Once the PhotoChooserTask is called your app will be Fast App Switched (or maybe even Tombstoned).
Either way your socket will be closed. You’ll have to reopen your socket when your app is Activated again.