标签: freeze

即使我没有同时运行多个任务,当发生长进程时,表单也会冻结

private void btnUpload_Click(object sender, EventArgs e)
{
    progressbar.value = 10;

    RunLongProcess();

    progressbar.value = 20;

    RunAnotherLongProcess();

    progressbar.value = 50;

    RunOneMoreLongProcess();

    progressbar.value = 100;
}
Run Code Online (Sandbox Code Playgroud)

上面代码的问题是应用程序冻结,我看不到进度条正常运行。

处理这种情况的正确方法是什么?考虑到我不想同时运行两件事,我不确定为什么会发生这种情况。一次只做一件事。我需要刷新应用程序或类似的东西吗?

c# forms multithreading freeze

1
推荐指数
1
解决办法
1720
查看次数

SystemEvents.SessionSwitch 导致我的 Windows 窗体应用程序冻结

我在 .NET 4.5 上有一个 C# Windows 窗体应用程序。

此应用程序连接到 USB 设备。

我想同时支持多个会话。

为此,我需要在会话锁定时与该设备断开连接,以允许新会话连接到它。

我使用 SystemEvents.SessionSwitchEventArgs.Reason 来检测此类事件: - SessionSwitchReason.ConsoleDisconnect on session switch - SessionSwitchReason.ConsoleConnect on unlock after session switch

此事件似乎是完美的解决方案,但有时在随机时间(在多次锁定或解锁之后),该事件不会被触发并且 UI 会冻结。值得注意的是,当应用程序在调试器中运行时不会发生这种情况。

我从日志中知道其他一些后台线程仍在正常工作,但 UI 冻结并且未调用事件的订阅函数。

我的代码示例:

程序.cs:

using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MyProgram
{
    static class Program
    {
        private static Mutex mutex = null;
    [STAThread]
    static void Main()
    {
        const string appName = "MyProgram";
        bool createdNew;

        mutex = new Mutex(true, appName, out …
Run Code Online (Sandbox Code Playgroud)

.net c# session multithreading freeze

1
推荐指数
1
解决办法
1508
查看次数

Haskell 中的斐波那契会冻结 pc?

我是Haskell的初学者,我试图编写fibonacci函数,但每次运行它时,我的电脑都会冻结。我不知道为什么。这是我的代码:

fib n = if n<=2 then 1 else (fib n-1)+(fib n-2)
Run Code Online (Sandbox Code Playgroud)

我不知道它是否有任何帮助,但我在 Ubuntu 20.04 中使用 GHC

recursion haskell freeze

1
推荐指数
1
解决办法
87
查看次数

Haskell:为什么将变量的尾部重新分配给它自己的变量会出现问题?

假设您有一个包含以下列表的变量:

Prelude> arr = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

你也是,

Prelude> arr
[1,2,3,4,5]
Prelude> arr = tail arr
Prelude> arr

Run Code Online (Sandbox Code Playgroud)

为什么编译器现在冻结了?我试图在递归中实现这个代码语句,但这种现象阻止了我的递归正常工作——它不断返回一个空列表错误。

recursion haskell list freeze

1
推荐指数
1
解决办法
74
查看次数

程序在Thread.sleep()期间并与Timer冻结

原始问题:

应该使用此方法将JFrame上显示的图像逐渐更改为另一图像。但是,如果没有某种方法可以减慢它的运行速度,它似乎只能从一个图像更改为新图像。为了减慢速度,我放入Thread.sleep(1000),这样更改不会立即发生。但是,有了这一行,我的程序完全死机了。没有错误信息,什么都没有。有人可以帮我吗?建议一种更好的方法来降低它的速度,或解决该问题的方法。

为了澄清起见:int k是更改中的渐进步骤数。k = 1将是即时变化。更大的事情将是逐渐的变化。同时,int控制每个图像显示多少的比例。

public void morphImg(int width, int height, BufferedImage morphImage, int k) {
    //creates new image from two images of same size
    BufferedImage image2 = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    for (int i = 0; i < width; i++) {
        for (int j = 0; j < height; j++) {
            //get color from original image
            Color c = new Color(image.getRGB(i, j));

            //get colors from morph image
            Color c2 = new Color(morphImage.getRGB(i, j));

            for (int l = 1; …
Run Code Online (Sandbox Code Playgroud)

java sleep bufferedimage try-catch freeze

0
推荐指数
1
解决办法
3099
查看次数

在JQGrid中冻结列

有没有办法让jqGrid冻结一个或多个最左边的列,并使列的余额左右滚动?

我在谷歌至少有一个声称在这里做过的人:http://www.trirand.com/blog/?page_id = 393 /discussion / new-free-column-plugin /

...但示例代码消失了.(具有讽刺意味的是,它工作截屏仍在播放,嘲笑我.)

看起来这里的一些人也使它工作,但不包括代码.

有没有人使用滚动工具在jqGrid中使用该插件或其他类似的插件获得冻结列?任何人都有这个代码工作和方便吗?

我原本以为你会包含那个人的代码,它会自动生成你可以在他的截屏视频中看到的图钉,如果没有,你会让魔法发生......

$(document).ready(function() {
    //$("#tblImz").jqGrid().freezingSetup(); // initially tried without this line; same error (reporting different function, natch)
    $("#tblImz").jqGrid().freezeColumn(2);
});
Run Code Online (Sandbox Code Playgroud)

......但那给了我......

Microsoft JScript运行时错误:对象不支持属性或方法'freezeColumn'

要么

Microsoft JScript运行时错误:对象不支持属性或方法'freezingSetup'

只是为了好玩,这里是我认为几乎正确的清理代码,取自上面帖子的粘贴.我认为这准确地转发什么提交人[无意中错位了在他的trirand.com论坛上发帖,从两个编辑在这里通过linoj建议.好的,代码转储......

(function ($) {    
/**    
* jqGrid extension    
* Tim Heckel timheckel@gmail.com    *
* from here: http://www.trirand.com/blog/?page_id=393/discussion/new-freeze-column-plugin/
* Dual licensed under the MIT and GPL licenses: …
Run Code Online (Sandbox Code Playgroud)

freeze jqgrid

0
推荐指数
1
解决办法
2万
查看次数

Java动画GIF和MySQL连接

我是一个Java Messenger.我做了一个登录对话框,当我点击连接按钮时,在加载时会出现一个动画GIF.

问题是当我的MySQL连接和查询正在处理时,动画GIF停止移动.

我抛出MySQL连接并在新线程中查询但仍然相同:

Thread connectionThread = new Thread(new Runnable() {

            public void run() {
                SwingUtilities.invokeLater(new Runnable() {

                    public void run() {

                        //Database conection
                        OlaDB.createConnection();
...
Run Code Online (Sandbox Code Playgroud)

我该怎么办才能避免GIF冻结?

java mysql swing gif freeze

0
推荐指数
1
解决办法
500
查看次数

任何人都可以帮我解释为什么我的GUI在循环运行时无法点击?

循环结束后,所有按钮和文本字段都可用,但循环运行时,无法单击任何按钮和文本字段.我尝试了很多不同的东西,看了很多不同的网站,但没有什么可以帮助我.我不知道出了什么问题!

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

 public class J extends JFrame implements ActionListener{    
    JButton start = new JButton("Start (F12)");
    JButton stop = new JButton("Stop");

    int i;
    JLabel delay = new JLabel("Delay: ");
    JTextField delayJTF = new JTextField(4);
    int delayS = 0;
    GridLayout bl = new GridLayout(10, 10);
    public J() 
    {      

    super("Auto Clicker");
    start.addActionListener(this);
    stop.addActionListener(this);
    setSize(300, 300);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(bl);
    add(delay, BorderLayout.NORTH);
    add(delayJTF, BorderLayout.NORTH);
    add(start);
    add(stop);
    setVisible(true);




     }

      boolean run = false;



          public static void main(String[] args) {
         J …
Run Code Online (Sandbox Code Playgroud)

java swing awt freeze event-dispatch-thread

0
推荐指数
1
解决办法
804
查看次数

运行繁重方法的线程正在减慢C#中的UI

有谁知道为什么这段代码会降低用户界面的速度:

Thread trdGenerateTrajectory = new Thread(() => HeavyMethod());
trdGenerateTrajectory.Start();
trdGenerateTrajectory.Join();
Run Code Online (Sandbox Code Playgroud)

这应该是在主线程的单独线程中,我是对的吗?如果是这样,为什么运行它会减慢/冻结UL?

编辑:感谢您的评论.我删除了Join(),但它仍然冻结了UI.任何的想法?

更新:HeavyMethod()方法从我创建的Matlab DLL调用方法.dll中的方法为机器人生成操纵轨迹.我的项目是一个重型机器人项目,与许多硬件/设备进行通信.该项目有12名背景工作者和一名计时器.计时器负责更新UI及其上的所有文本/颜色/图像/ .... 到目前为止,我还没有遇到任何与后台工作者和计时器有关的问题,无论他们运行的任务有多重,我都没有看到任何延迟或停止计时器和UI更新.但是,当我在Matlab dll中调用这个特定的方法时,我看到UI的完全停止正在更新,直到方法完成.这就是我的经历:

  1. 我使用线程(上面的代码)没有运气.
  2. 然后我将方法和流程在运行方法后移动到另一个背景工作者,再次没有运气.

然后我意识到我的表单上只有一些文本框遇到了这个问题.他们是那些从同一个Matlab dll的另一个方法获取值的人.那时我才意识到这个问题与线程/后台工作者无关,而且与Matlab运行方法的方式有关.也许是单线程!?无论如何,我可能会有所帮助,如果我为这个生成轨迹的特定方法制作单独的dll,所以我创建了另一个dll,但我遇到了完全相同的问题.似乎Matlab dll一次只能运行一个方法,无论你是从不同的线程调用它们,还是从单独的dll调用它们.我相信我应该在另外的SO问题中提出这个问题,但是,在此期间,你对此有何评论?(更新:我没有收到任何回复所以我发布了一个新问题:同时从一个Matlab dll调用两个函数)

c# user-interface multithreading freeze

0
推荐指数
1
解决办法
1276
查看次数

C#.Net在迭代大量文件时冻结

我有一个问题,我编写了一个应用程序,它将迭代文件并为每个文件的整数添加+1,直到它达到特定的文件名.问题可能是因为.Net不直接访问本机文件系统,它填满了集合,但在我的情况下需要几年时间,相信我,我在目标文件夹中有26万个文件.迭代甚至没有到达第二个文件.线程完全冻结,没有错误,没有例外.那么有没有办法直接访问本机文件系统而没有任何无用的集合填充?

这是我的代码:

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        foreach (string file in Directory.GetFiles("\\\\Mypcname-PC\\vxheaven\\malware"))
        {
            count++;
            label1.Text = Convert.ToString(count);
            if (file.Contains(textBox1.Text))
            {
                label1.Text = Convert.ToString(count) + " reached the file";
                break;
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句.对不起,我的英语不好

问候

c# iteration freeze filesystem-access

0
推荐指数
1
解决办法
450
查看次数