Kann nicht warten auf 'Void', auch wenn Sie mit Aufgabe
Habe ich ein problem. Ich bin versucht zu ändern, eine app, die ich schon vor längerer Zeit gemacht und es Funktioniert immer noch auf die WP-Handy, aber jetzt versuche ich es zum laufen bekomme diesen Fehler:
Auf erwarte ich:
nicht erwarten 'void'.
Wenn ich leere zur Aufgabe der Fehler ist immer noch
Nicht erwarten 'void'
Habe ich auch nicht void
mehr.
Kann mir jemand helfen ?
namespace StreamUploadDownload
{
using System.Threading;
public partial class Page1 : PhoneApplicationPage
{
private PhotoCamera _cam;
private double _canvasWidth;
private double _canvasHeight;
private MediaLibrary _library = new MediaLibrary();
public int count = 100;
private static readonly string[] scopes = new string[] { "wl.signin", "wl.basic", "wl.offline_access", "wl.skydrive_update", "wl.skydrive" };
string comboValue;
private LiveConnectClient liveClient;
public int x = 0;
public int y = 0;
public string FileText { get; set; }
public int ComboNumber { get; set; }
public int ConnectionOK { get; set; }
public Page1()
{
InitializeComponent();
}
private void OnSessionChanged(object sender, LiveConnectSessionChangedEventArgs e)
{
this.liveClient = (e.Status == LiveConnectSessionStatus.Connected) ? new LiveConnectClient(e.Session) : null;
if (e.Status == LiveConnectSessionStatus.Connected)
{
btnSignin.Visibility = Visibility.Collapsed;
Pildista.Visibility = Visibility.Visible;
//Pildista2K.Visibility = Visibility.Visible;
Pildista.Content = "Pildista";
}
else
{
Pildista.Visibility = Visibility.Collapsed;
//Pildista2K.Visibility = Visibility.Collapsed;
btnSignin.Visibility = Visibility.Visible;
}
}
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
if ((PhotoCamera.IsCameraTypeSupported(CameraType.Primary) == true) ||
(PhotoCamera.IsCameraTypeSupported(CameraType.FrontFacing) == true))
{
if (PhotoCamera.IsCameraTypeSupported(CameraType.Primary))
{
_cam = new Microsoft.Devices.PhotoCamera(CameraType.Primary);
_cam.Initialized += new EventHandler<CameraOperationCompletedEventArgs>(cam_Initialized);
_cam.CaptureImageAvailable += new EventHandler<ContentReadyEventArgs>(cam_CaptureImageAvailable);
viewfinderBrush.SetSource(_cam);
//CameraButtons.ShutterKeyPressed += OnButtonFullPress;
base.OnNavigatedTo(e);
if (PhoneApplicationService.Current.State.ContainsKey("Text"))
{
txtvalue.Text = (string)PhoneApplicationService.Current.State["Text"];
FileText = txtvalue.Text;
}
if (PhoneApplicationService.Current.State.ContainsKey("index"))
{
ComboNumber = (int)PhoneApplicationService.Current.State["index"];
}
else
{
//The camera is not supported on the device.
this.Dispatcher.BeginInvoke(delegate()
{
//Write message.
});
//Disable UI.
AFButton.IsEnabled = false;
}
}
}
}
private double GetCameraAspectRatio()
{
IEnumerable<Size> resList = _cam.AvailableResolutions;
if (resList.Count<Size>() > 0)
{
Size res = resList.ElementAt<Size>(0);
return res.Width / res.Height;
}
return 1;
}
void cam_Initialized(object sender, Microsoft.Devices.CameraOperationCompletedEventArgs e)
{
if (e.Succeeded)
{
this.Dispatcher.BeginInvoke(delegate()
{
_canvasHeight = Application.Current.Host.Content.ActualWidth;
_canvasWidth = _canvasHeight * GetCameraAspectRatio();
viewfinderCanvas.Width = _canvasWidth;
viewfinderCanvas.Height = _canvasHeight;
});
}
}
//Failinime andmine ning salvestamine.
private async void cam_CaptureImageAvailable(object sender, Microsoft.Devices.ContentReadyEventArgs e)
{
if (ComboNumber == 1)
{
comboValue = "O";
}
if (ComboNumber == 2)
{
comboValue = "T";
}
if (ComboNumber == 3)
{
comboValue = "S";
}
if (ComboNumber == 4)
{
comboValue = "P";
}
if (ComboNumber == 5)
{
comboValue = "A";
}
if (ComboNumber == 6)
{
comboValue = "M";
}
string fileName = String.Format(FileText + "_" + comboValue + "_" + DateTime.Now.ToString("dd-MM-yyyy_HH-mm-ss") + ".jpg");
try
{
LiveOperationResult operationResult = await this.liveClient.UploadAsync("/me/skydrive", fileName, e.ImageStream, OverwriteOption.Overwrite); //Cannot await 'void'
}
catch (LiveConnectException ex)
{
//e.ImageStream.Close();
//this.infoTextBlock.Text = "Error getting contact info: ";
//this.infoTextBlock.Visibility = Visibility.Visible;
}
finally
{
e.ImageStream.Close();
y++;
Dispatcher.BeginInvoke(delegate()
{
string b = Convert.ToString(y);
loobvalue2.Text = b;
});
}
}
//kaameranupu vajutus.
private void takephoto_Click(object sender, RoutedEventArgs e)
{
if (_cam != null)
{
_cam.CaptureImage();
x++;
string s = x.ToString();
loobvalue.Text = s;
}
}
//Ühenduse Loomine. Session load.
private async void connectButton_Click(object sender, RoutedEventArgs e)
{
bool connected = false;
try
{
var authClient = new LiveAuthClient("RemovedforWeb");
LiveLoginResult result = await authClient.LoginAsync(new string[] { "wl.signin", "wl.skydrive" }); //cannot await 'void'
if (result.Status == LiveConnectSessionStatus.Connected)
{
connected = true;
var connectClient = new LiveConnectClient(result.Session);
var meResult = await connectClient.GetAsync("me");
dynamic meData = meResult.Result; //cannot await 'void'
}
else
{
//btnSignin.Visibility = Visibility.Visible;
}
}
catch (LiveAuthException ex)
{
}
EDIT: ich fügte hinzu, mehr code und wies auf problematische Plätze
- Sie haben Schlepptau erwartet, eine für
authClient.LoginAsync
und eine fürconnectClient.GetAsync
. Diese sollen zurückTask<LiveLoginResult>
undTask<T>
wobei T der Typ vonmeResult
. Nicht alle von Ihnen kehrenvoid
oderTask
? - Welche Zeile code redest du?
- Dein Fehler ist in einem anderen Schloss. Bitte zeigen Sie den rest der code und die komplette Fehlermeldung mit stack-trace.
- Wenn er hätte die Aufgabe als Rückgabetyp für eine dieser Methoden, die Fehlermeldung wäre wie 'konvertieren Kann den Typ void zu LiveLoginResult oder was auch immer meResult werden sollte. Also wenn der Fehler wirklich in diesem Stück code, muss es sein, dass
authClient.LoginAsync
oderconnectClient.GetAsync
sind vom Typ void. - Zu viel code. Bitte halten Sie es Minimale, Vollständige und Überprüfbare.
- Diese Zeile ist falsch:
meResult.Result
.await
schon entspannen das Ergebnis aus der Aufgabe, so sollten Sie direktmeResult
. Was ist die Signatur derconnectClient.GetAsync
Methode? - das ist, was ich sage, zu
- Sie sagen "ich don' T haben sogar
void
mehr", aber fast alle Ihre Funktionen habenvoid
zurück geben...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den obigen code "Method1" keinen Wert zurückliefern soll, in der Erwägung, dass "Methode2" gibt ein "int" - Wert.
Für die folgende Codezeile
Den "UploadAsync" - Methode keinen Wert zurückliefern soll, das ist, was es scheint, wenn Sie sagen: "kann Nicht warten auf 'void'"
Versuchen, zu entfernen "LiveOperationResult operationResult =" aus der Zeile des Codes und nur schreiben -
Gleiche für die zweite Zeile der code-
Re-Write it as-
void
.