Повлияет ли на результат асинхронность методов классов? await-asyncдумаю тут надо искать сведения о потокобезопасности. на пример
Как поменятьуже подсказано ))
Сильно будет отличаться файл "Юникод" от "Анси"в случае немецкого, в анси, будут утеряны умлауты, они доступны или в случае немецкой кодовой страницы для не-юникод программ (а это уже не ansi), или в юникоде, для всех других настроек локалей
.mdfработает только SQL Server, но стоит учесть, что существуют бесплатные, и существенно облегченные, редакции типа SQLExpress и SQL LocalDB
using System;
using System.Windows.Forms;
namespace X
{
internal static partial class Y
{
/// <summary>
/// Главная точка входа для приложения.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(A = new fmA());
// bla-bla-bla with login
Application.Run(B = new fmB());
}
internal static fmA A;
internal static fmB B;
}
}
Как закрыть главную форму из дочерней?буквальный ответ - ни как, закрытие главной формы, это завершение
Application.Run(A = new fmXXX());
и если вы не модифицирутете код Main
- тогда это завершение программы {"userId":"тогда первый элемент отбрасываем, все остальные начинаются с искомой величины, надо только хвост
"} bla-bla-blaотрубить
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace parsejson111
{
class Program
{
const string data = "{\"anchor\":\"aaabbbccc==\",\"members\":[{\"userId\":\"111\"},{\"userId\":\"2222\"},{\"userId\":\"333\"},{\"userId\":\"444\"}],\"has_more\":true}";
// фишки замера заложены, но разница может проявиться только на больших объемах ))
static void Main(string[] args)
{
Console.WriteLine("data:");
Console.WriteLine(data);
var sw = new Stopwatch();
sw.Start();
var ts = sw.Elapsed; // лень объявлять тип
json();
hand();
lazy();
sw.Stop();
Console.WriteLine("press any key to continue...");
Console.ReadKey();
void json() // возможно существует более элегантный вариант. тут у меня опыта мало ))
{
sw.Reset();
Console.WriteLine("... json");
var j = JObject.Parse(data);
var r = j["members"].Children().ToList();
foreach (var u in r)
{
var uid = JObject.Parse(u.ToString());
var id = uid["userId"].Value<string>();
Console.WriteLine(id);
}
ts = sw.Elapsed;
Console.WriteLine($"\t{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}");
}
void hand() // зато тут гарантирую - оптимизировать лучше не реально, и по перфомансу вряд ли можно лучше ))
{
sw.Reset();
Console.WriteLine("... hand");
var p = 0;
while ((p = data.IndexOf("{\"userId\":\"", p)) > 0)
{
p += 11; //длина шаблона. заодно избегаем риска зацикливания
var f = data.IndexOf("\"}", p);
Console.WriteLine(data.Substring(p, f - p));
}
ts = sw.Elapsed;
Console.WriteLine($"\t{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}");
}
void lazy()
{
sw.Reset();
Console.WriteLine("... lazy");
var t = data.Split(new string[] { "{\"userId\":\"" }, StringSplitOptions.RemoveEmptyEntries);
for (var i = 1; i < t.Length; i++) // здесь и везде - обработка пустого множества на вашей совести
{
var id = t[i].Split(new string[] { "\"}" }, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine(id[0]);
}
ts = sw.Elapsed;
Console.WriteLine($"\t{ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}");
}
}
}
}
Свет выключают достаточно редко.. значит все таки выключают? поверьте, раз в год, но случится ситуация, когда вы потеряете ценную работу, из-за ошибки соседа/бульдозериста/грозы/etc - по тому мой совет - UPS
using System;
using System.IO;
namespace mypath
{
class Program
{
static void Main(string[] args)
{
var p = Environment.CurrentDirectory;
Console.WriteLine(p);
Console.ReadKey();
p += @"\..\..\App.config";
var appcfg = File.ReadLines(p);
foreach(var l in appcfg)
Console.WriteLine(l);
Console.ReadKey();
}
}
}