0 / 0 / 0
Регистрация: 10.01.2016
Сообщений: 20
1
.NET 4.x

Отдельный поток

26.04.2016, 08:57. Показов 1367. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
        private void is_Tick(object sender, EventArgs e)
        {
            SJarvis.Enabled = false;
            WebRequest request = WebRequest.Create("https://www.google.com/speech-api/v2/recognize?output=json&lang=ru-RU&key=AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw");
            //
            request.Method = "POST";
            byte[] byteArray = File.ReadAllBytes(outputFilename);
            request.ContentType = "audio/l16; rate=16000"; //"16000";
            request.ContentLength = byteArray.Length;
            request.GetRequestStream().Write(byteArray, 0, byteArray.Length);
 
 
            // Get the response.
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(response.GetResponseStream());
            // Read the content.
            string json = reader.ReadToEnd();
 
            Newtonsoft.Json.Linq.JObject obj = Newtonsoft.Json.Linq.JObject.Parse(json.Substring(14));
            MyJsonObject[] objArr = JsonConvert.DeserializeObject<MyJsonObject[]>(obj["result"][0]["alternative"].ToString());
 
            foreach (MyJsonObject myJsonObj in objArr)
            {
               
            }
 
            // Clean up the streams.
            reader.Close();
            response.Close();
            is.Enabled = false;
        }
При выполнении этого участка кода, программа зависает секунд на 5-7, как сделать, чтобы она работала ыбстрее?
Мне сказали нужен отдельный поток, но как?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2016, 08:57
Ответы с готовыми решениями:

Как вывести в отдельный поток?
Вот код программы. Прога щелкает мышкой в определенные координаты экрана, через определенный...

Как сделать отдельный поток в C++?
Скажите как сделать отдельный поток в C++

Отдельный поток под BitmapImage
Есть метод: private Task&lt;IEnumerable&lt;PageModel&gt;&gt; LoadContent(string uri) { ...

Вычисления не отделяются в отдельный от интерфейса поток
Почему интерфейс виснет, даже при учете того что я выделяю под него свой поток? сразу ремарка,...

1
103 / 104 / 54
Регистрация: 23.03.2016
Сообщений: 462
26.04.2016, 15:31 2
BotEx, в принципе, ничего сложного создать новый поток.

C#
1
2
3
4
5
void newThread()
        {
            System.Threading.Thread thr = new System.Threading.Thread(new System.Threading.ThreadStart(threadedMethod));
            thr.Start();
        }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
private void threadedMethod()
        {
            SJarvis.Enabled = false;
            WebRequest request = WebRequest.Create("https://www.google.com/speech-api/v2/recognize?output=json&lang=ru-RU&key=AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw");
            //
            request.Method = "POST";
            byte[] byteArray = File.ReadAllBytes(outputFilename);
            request.ContentType = "audio/l16; rate=16000"; //"16000";
            request.ContentLength = byteArray.Length;
            request.GetRequestStream().Write(byteArray, 0, byteArray.Length);
 
 
            // Get the response.
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(response.GetResponseStream());
            // Read the content.
            string json = reader.ReadToEnd();
 
            Newtonsoft.Json.Linq.JObject obj = Newtonsoft.Json.Linq.JObject.Parse(json.Substring(14));
            MyJsonObject[] objArr = JsonConvert.DeserializeObject<MyJsonObject[]>(obj["result"][0]["alternative"].ToString());
 
            foreach (MyJsonObject myJsonObj in objArr)
            {
               
            }
 
            // Clean up the streams.
            reader.Close();
            response.Close();
            is.Enabled = false;
        }


C#
1
2
3
4
        private void is_Tick(object sender, EventArgs e)
        { 
             newThread();
        }
Но программа не станет от этого работать быстрее, разве что зависать на время работы потока не будет.
либо без метода нью тред, просто содержимое метода поместите в is_Tick
0
26.04.2016, 15:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2016, 15:31
Помогаю со студенческими работами здесь

Отдельный поток, выполнение перегруженной функции
Мне необходимо выполнить функцию в отдельном потоке public static void updateicon(NotifyIcon...

Память в стеке под отдельный поток?
можно ли в c# да и вообще выделить память в стеке под отдельный поток - больше или меньше 1 мб?...

Остановить отдельный поток при закрытии программы
Здравствуйте! Я создал отдельный поток для функции public Form1() { ...

Как создать отдельный поток для функции?
Подскажите пожалуйста. Как создать отдельный поток для функции private void function (string...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru