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ür connectClient.GetAsync. Diese sollen zurück Task<LiveLoginResult> und Task<T> wobei T der Typ von meResult. Nicht alle von Ihnen kehren void oder Task?
  • 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 oder connectClient.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 direkt meResult. Was ist die Signatur der connectClient.GetAsync Methode?
  • das ist, was ich sage, zu
  • Sie sagen "ich don' T haben sogar void mehr", aber fast alle Ihre Funktionen haben void zurück geben...

InformationsquelleAutor Jyrka | 2015-05-22
Schreibe einen Kommentar