Результаты поиска
Выбрали компактный рамках/нарезание резьбы - MessageBox отображается над другими элементами управления после того, как опция
Я работаю над приложением, которое захватывает и устанавливает кучу обновлений с внешнего сервера,и мне нужна помощь с потоковой обработкой. Пользователь выполняет этот процесс:
- Нажимает кнопку
- Метод проверяет наличие обновлений, возвращается счетчик.
- Если больше 0, то спросите пользователя, если они хотят установить с помощью MessageBox.Show().
- Если да, то он проходит через цикл и вызывает BeginInvoke() в методе run() каждого обновления, чтобы запустить его в фоновом режиме.
- В моем классе обновления есть некоторые события, которые используются для обновления индикатора выполнения и т. д.
Обновления индикатора выполнения в порядке, но MessageBox не полностью очищается от экрана, потому что цикл обновления начинается сразу после нажатия пользователем кнопки да (см. снимок экрана ниже).
- Что я должен сделать, чтобы сделать messagebox исчезнуть мгновенно до начала цикла обновления?
- Должен ли я использовать потоки вместо BeginInvoke()?
- Должен ли я выполнять начальную проверку обновления в отдельном потоке и вызывать MessageBox.Show() из этого потока?
Код
// Button clicked event handler code...
DialogResult dlgRes = MessageBox.Show(
string.Format("There are {0} updates available.\n\nInstall these now?",
um2.Updates.Count), "Updates Available",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2
);
if (dlgRes == DialogResult.Yes)
{
ProcessAllUpdates(um2);
}
// Processes a bunch of items in a loop
private void ProcessAllUpdates(UpdateManager2 um2)
{
for (int i = 0; i < um2.Updates.Count; i++)
{
Update2 update = um2.Updates[i];
ProcessSingleUpdate(update);
int percentComplete = Utilities.CalculatePercentCompleted(i, um2.Updates.Count);
UpdateOverallProgress(percentComplete);
}
}
// Process a single update with IAsyncResult
private void ProcessSingleUpdate(Update2 update)
{
update.Action.OnStart += Action_OnStart;
update.Action.OnProgress += Action_OnProgress;
update.Action.OnCompletion += Action_OnCompletion;
//synchronous
//update.Action.Run();
// async
IAsyncResult ar = this.BeginInvoke((MethodInvoker)delegate() { update.Action.Run(); });
}
Скриншот
Каков наилучший способ поиска ALL вашей памяти при разработке на компактной платформе?
Я использовал CF Remote Performance Monitor, однако это, похоже, только отслеживает память, инициализированную в управляемом мире, в отличие от неуправляемого мира. Ну, я могу только предполагать это, поскольку числа, перечисленные в профилировщике, намного меньше максимально допустимого (32 Мб на CE 5). Профилирование конкретного приложения с помощью RPM показало мне, что общее использование всех кэшей удается получить только около 12 МБ, а затем медленно сжимается, поскольку (я предполагаю) что-то неуправляемое начинает требовать больше памяти. Ползунок памяти в системе также показывает, что устройство очень мало памяти. Если я убью процесс, ползунок покажет, что вся память возвращается. Так что он должен (?) быть этим управляемым процессом, который поглощает память.
Есть ли простой(иш?) мода как можно отслеживать неуправляемое использование памяти каким-то образом, что может позволить мне сопоставить его с соответствующими вызовами P/Invoke?
EDIT: для всех вас, повторных тегов, это не так .NET, помечая вопрос таким образом, путает вещи. Это.NETCF / Компактный Каркас. Я знаю, что они кажутся похожими, но они разные, потому что .NET скалы в то время как CF в основном просто обертка вокруг NotImplementedException.
Кто-нибудь использовал NUnitLite с каким-либо успехом?
Недавно я начал работу над Compact Framework, и мне было интересно, есть ли у кого-нибудь рекомендации по модульному тестированию за пределами того, что находится в VS 2008. MSTest-это нормально, но отладка тестов-это кошмар, и тестовый бегун очень медленный.
Я вижу, что NUnitLite на codeplex-это вариант, но он не выглядит очень активным; он также находится в дорожной карте для NUnit 3.0,но кто знает, когда это выйдет. У кого-нибудь был успех с этим?
Альфа-смешивание цветов в компактной структуре .NET 2.0
В полной платформе .NET вы можете использовать метод Color.FromArgb() для создания нового цвета с Альфа-смешиванием, например::
Color blended = Color.FromArgb(alpha, color);
или
Color blended = Color.FromArgb(alpha, red, green , blue);
Однако в Compact Framework (2.0 конкретно) ни один из этих методов не доступен, вы только получаете:
Color.FromArgb(int red, int green, int blue);
и
Color.FromArgb(int val);
Первый из них, очевидно, даже не позволяет ввести Альфа-значение, но документация для последнего показывает, что "val"-это 32-битное значение ARGB (как 0xAARRGGBB в отличие от стандартного 24-битного 0xRRGGBB), поэтому было бы разумно просто построить значение ARGB и передать его функции. Я попробовал это сделать со следующим:
private Color FromARGB(byte alpha, byte red, byte green, byte blue)
{
int val = (alpha << 24) | (red << 16) | (green << 8) | blue;
return Color.FromArgb(val);
}
Но независимо от того, что я делаю, Альфа-смешивание никогда не работает, результирующий цвет всегда имеет полную непрозрачность, даже если значение альфа равно 0.
Кто-нибудь получил это, чтобы работать на компактной основе?
Как я могу узнать имя исполняющего ?exe?
Компактная платформа не поддерживает Assembly.GetEntryAssembly для определения запуска .exe. Так что есть еще один способ получить имя исполнителя .exe?
EDIT: я нашел ответ в блоге Питера фута: http://peterfoot.net/default.aspx вот код:
byte[] buffer = new byte[MAX_PATH * 2];
int chars = GetModuleFileName(IntPtr.Zero, buffer, MAX_PATH);
if (chars > 0)
{
string assemblyPath = System.Text.Encoding.Unicode.GetString(buffer, 0, chars * 2);
}
[DllImport("coredll.dll", SetLastError = true)]
private static extern int GetModuleFileName(IntPtr hModule, byte[] lpFilename, int nSize);
Compact Framework - есть ли в наличии фреймворк MVC/библиотека?
Я нашел статью на эту тему от сотрудника Microsoft, но кто-нибудь реализовал более надежную структуру для этого? Существует ли легкий фреймворк для WinForms, который можно было бы легко портировать? Я хотел бы довольно быстро войти в курс дела и избежать создания собственной структуры/библиотеки, чтобы справиться с этим, когда кто-то более умный уже сделал это.
Я не смотрел на фабрику мобильного программного обеспечения из группы P&P, но подозреваю, что она довольно тяжелая. Стоит ли на это смотреть?
Edit: я не ищу информацию о проекте ASP.NET MVC. Я спрашиваю о реализации compact framework 'WinForms' и о том, как реализовать MVC с помощью этого.
553   7   00:19, 3rd August, 2020
Compact Framework-как динамически создать тип без конструктора по умолчанию?
Я использую .NET CF 3.5. Тип, который я хочу создать, не имеет конструктора по умолчанию, поэтому я хочу передать строку перегруженному конструктору. Как мне это сделать?
Код:
Assembly a = Assembly.LoadFrom("my.dll");
Type t = a.GetType("type info here");
// All ok so far, assembly loads and I can get my type
string s = "Pass me to the constructor of Type t";
MyObj o = Activator.CreateInstance(t); // throws MissMethodException