Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 任务将代表文件访问,并将在您的合成根目录中等待,对于WPF,它通常是App.xaml.cs。最后,当初始化任务完成时,应用程序可以退出。另一个需要考虑的问题是,为什么在看起来不需要UI的情况下使用WPF。使用控制台应用程序,您不会遇到任何异步构造函数的复杂_C#_Wpf_Async Await - Fatal编程技术网

C# 任务将代表文件访问,并将在您的合成根目录中等待,对于WPF,它通常是App.xaml.cs。最后,当初始化任务完成时,应用程序可以退出。另一个需要考虑的问题是,为什么在看起来不需要UI的情况下使用WPF。使用控制台应用程序,您不会遇到任何异步构造函数的复杂

C# 任务将代表文件访问,并将在您的合成根目录中等待,对于WPF,它通常是App.xaml.cs。最后,当初始化任务完成时,应用程序可以退出。另一个需要考虑的问题是,为什么在看起来不需要UI的情况下使用WPF。使用控制台应用程序,您不会遇到任何异步构造函数的复杂,c#,wpf,async-await,C#,Wpf,Async Await,任务将代表文件访问,并将在您的合成根目录中等待,对于WPF,它通常是App.xaml.cs。最后,当初始化任务完成时,应用程序可以退出。另一个需要考虑的问题是,为什么在看起来不需要UI的情况下使用WPF。使用控制台应用程序,您不会遇到任何异步构造函数的复杂问题,可以轻松地等待ReadFile,然后退出。谢谢JSteward。我把它改为控制台应用程序,它可以做这项工作。谢谢。我把它改为控制台应用程序,它可以完成这项工作。 using System; using System.Collections


任务将代表文件访问,并将在您的合成根目录中等待,对于WPF,它通常是
App.xaml.cs
。最后,当初始化任务完成时,应用程序可以退出。另一个需要考虑的问题是,为什么在看起来不需要UI的情况下使用WPF。使用控制台应用程序,您不会遇到任何异步构造函数的复杂问题,可以轻松地等待ReadFile,然后退出。谢谢JSteward。我把它改为控制台应用程序,它可以做这项工作。谢谢。我把它改为控制台应用程序,它可以完成这项工作。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

using System.IO;
using Microsoft.ProjectOxford.Vision;
using Microsoft.ProjectOxford.Vision.Contract;

using System.Diagnostics;


namespace TagPhotoScheduler
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        Boolean Finished = false;

        public MainWindow()
        {
            InitializeComponent();
            ReadFile();    
            CloseApp();
        }

        public void CloseApp()
        {
            //close application after run
            if (Finished == true)
            {                
                Application.Current.Shutdown();
                //this.Close();
            }
        }

        public void ReadFile()
        {
            DataClassesTagPhotoDataContext dc = new DataClassesTagPhotoDataContext();

            var query = from qPhoto in dc.db_PhotoLibrary_Photos
                        where qPhoto.ML_Processed == false
                        select qPhoto;

            foreach (var q in query)
            {    
                string pFileName = string.Empty;
                string photoURL = string.Empty;

                pFileName = q.PhotoID + "." + q.FileType;

                _status.Text += pFileName + " | ";

                photoURL = "https://example.com/storage/";

                if (q.ProjectID == null || q.ProjectID == 0)
                {
                    GetTag(q.PhotoID, photoURL + pFileName);

                    _status.Text += photoURL + pFileName + " \n";
                }
                else //had projectid
                {                        
                    photoURL +=  q.ProjectID + "/";

                    if (q.AlbumID == null || q.AlbumID == 0)
                    {
                        //photoURL += "/" + q.AlbumID + "/";
                        GetTag(q.PhotoID, photoURL + pFileName);
                        _status.Text += photoURL + pFileName + " \n";

                    }
                    else //albumid
                    {
                        photoURL +=  q.AlbumID + "/";
                        GetTag(q.PhotoID, photoURL + pFileName);
                        _status.Text += photoURL + pFileName + " \n";
                    }                            
                }    
            }
            //Finished = true;
            _status.Text += "\n\nFinished";
        }    

        public async void GetTag(int PhotoID, string URL)
        {
            VisionServiceClient VisionServiceClient = new VisionServiceClient("xxxxxxxxxxxxxxxxxxxx", "https://eastasia.api.cognitive.microsoft.com/vision/v1.0");

            DataClassesTagPhotoDataContext dc = new DataClassesTagPhotoDataContext();

            try
            {

                AnalysisResult analysisResult = await VisionServiceClient.DescribeAsync(URL, 3);

                if (analysisResult.Description != null)
                {    
                    foreach (var tag in analysisResult.Description.Tags)
                    {
                        tags += tag + ", ";

                        string QueryAnalysis = string.Empty;

                        db_PhotoLibrary_Photo_Tag newQ = new db_PhotoLibrary_Photo_Tag();
                        newQ.TagOn = DateTime.Now;
                        newQ.TagBy = 0;
                        newQ.PhotoID = PhotoID;
                        newQ.ML_Tag = true;
                        newQ.TagType = 0;
                        newQ.TagName = tag;
                        dc.db_PhotoLibrary_Photo_Tags.InsertOnSubmit(newQ);
                        dc.SubmitChanges();    

                        db_PhotoLibrary_Photo result = (from p in dc.db_PhotoLibrary_Photos
                                                        where p.PhotoID == PhotoID
                                                        select p).SingleOrDefault();    
                        result.ML_Processed = true;    
                        dc.SubmitChanges();    
                    }    
                    _status.Text = tags;
                }
            }
            catch { }    
        }    
    }    
}
        public MainWindow()
        {
            InitializeComponent();
            Task.Run(ReadFile).ContinueWith(CloseApp);    

        }