精华内容
下载资源
问答
  • JavaFX客户端加载等待界面,避免出现假死现象,任务执行结束,关闭等待界面,回到主界面。

    转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/52996382

    1 场景描述

    JavaFX客户端界面上的按钮点击后会去查询数据库,固此操作很耗时,如果不做任务处理,将会出现假死现象,因此想给这个等待的过程加载一个等待动画界面。

    这个等待界面达到的效果就是,点击按钮加载等待界面,任务执行结束,关闭等待界面,回到主界面。

    2 实现效果

    这里写图片描述

    3 具体过程

    整个过程拆分为4块:等待界面(new stage)、主页面点击监听、业务执行任务(task)、任务状态监听。

    下面依据程序加载的顺序来依次说明每一步。

    第一步:主页面点击监听,这一步需要监听主页面引起这个事物的控件,比如我的是按钮,下例子中是对ComboBox控件的鼠标右键点击事件监听。

    // 主界面监听
    databaseNameInput.setOnMouseClicked(new ComboBoxMouseEvent());
    
    // 实现监听类
    public class ComboBoxMouseEvent implements EventHandler<MouseEvent> {
    
        public void handle(MouseEvent mouseEvent) {
    
            MouseButton button = mouseEvent.getButton();
    
            if (button == MouseButton.SECONDARY) {
    
                MyTask task = new MyTask();
                task.valueProperty().addListener(new MyTaskListener());
    
                ProgressFrom progressFrom = new ProgressFrom(task);
                progressFrom.activateProgressBar();
    
            }
        }
    }

    第二步:业务执行任务(task)的创建,即本事例中的数据库查询任务,这里创建了一个MyTask类,call方法中即任务主体,任务执行完毕返回1。

    public class MyTask extends Task<Integer> {
    
        private static final Logger logger = Logger.getLogger(MyTask.class);
    
        private String serverName;
        private String userName;
        private String passWord;
    
        private List<String> databaseList;
        private String exception;
        private int status;
    
        public int getStatus(){
            return status;
        }
        public String getExceptions(){
            return exception;
        }
    
        public List<String> getDatabaseList(){
            return databaseList;
        }
    
        public MyTask(String serverName, String userName, String passWord){
            this.serverName = serverName;
            this.userName = userName;
            this.passWord = passWord;
        }
    
        protected Integer call() throws Exception {
    
            DBHelper dbHelper = DBHelperObject.getInstance();
            DBOperation dbOperation = DBOperationObject.getInstance();
    
            dbHelper.setUrl(SQLUtil.getSQL(serverName,"master"));
            dbHelper.setUsername(userName);
            dbHelper.setPassword(passWord);
    
            Response response = dbHelper.getConnection();
            if (response.getStatus() == 1){
                logger.info("数据库连接成功");
                Response response1 = dbOperation.query(response.getConnection(), Constant.DEFALUT_SQL);
                if (response1.getStatus() == 1){
                    logger.info("数据查询完成");
                    List<HashMap<String,Object>> list = response1.getList();
                    databaseList = MapUtil.getDatabaseList(list,"name");
                    status = 1;
                    logger.info(databaseList);
                } else {
                    exception = response1.getException();
                }
            } else {
                exception = response.getException();
            }
    
            if (exception != null && !exception.equals("")) {
    
                status = 0;
                logger.debug(exception);
            }
    
            return 1;
        }

    第三步:任务状态监听,即主界面中需要对上步中创建的任务执行状态做监听,以便任务执行完毕更新主界面。

    // 第一步中的方法代表了主界面的任务状态监听
    task.valueProperty().addListener(new MyTaskListener());
    
    // 具体监听代码
    public class MyTaskListener implements ChangeListener<Integer> {
    
        public void changed(ObservableValue<? extends Integer> observable, Integer oldValue, Integer newValue) {
    
            if (task.getStatus() == 1) {
    
                // 获取xml操作对象,读取默认数值
                XMLFileServiceImpl xmlFileService = XMLFileObject.getInstance();
    
                List<String> databaseList = task.getDatabaseList();
    
                if (databaseList != null && databaseList.size() > 0) {
                    ObservableList<String> database_items = FXCollections.observableList(databaseList);
                    databaseName.setItems(database_items);
                }
    
            } else {
    
                String exception = task.getExceptions();
    
                if (exception != null && !exception.equals("")) {
    
                    databaseName.setItems(null);
                    Text text = new Text();
                    text.setText(StringUtil.toConsoleString(exception));
                    text.setFill(Color.RED);
                    console.getChildren().add(text);
                }
            }
        }
    }
    

    第四步:启动等待页面,即new stage同时执行业务线程,此界面是一个透明的等待页面,task执行结束后,页面会自动关闭。

    这里需要注意一点:需要添加窗口父子关系属性,不然加载窗口会与父窗口并存,形成2个窗口,解决这个问题只需要在加载页面代码中添加dialogStage.ininOwner(primaryStage);这样加载窗口就会与父窗口融合为一个窗口。

    public class ProgressFrom {
    
        private static final Logger logger = Logger.getLogger(ProgressFrom.class);
    
        private Stage dialogStage;
        private ProgressIndicator progressIndicator;
    
        public ProgressFrom(final Task<?> task,Stage primaryStage) {
    
            dialogStage = new Stage();
            progressIndicator = new ProgressIndicator();
    
            // 窗口父子关系
            dialogStage.ininOwner(primaryStage);
            dialogStage.initStyle(StageStyle.UNDECORATED);
            dialogStage.initStyle(StageStyle.TRANSPARENT);
            dialogStage.initModality(Modality.APPLICATION_MODAL);
    
            // progress bar
            Label label = new Label("数据加载中, 请稍后...");
            label.setTextFill(Color.BLUE);
            //label.getStyleClass().add("progress-bar-root");
            progressIndicator.setProgress(-1F);
            //progressIndicator.getStyleClass().add("progress-bar-root");
            progressIndicator.progressProperty().bind(task.progressProperty());
    
            VBox vBox = new VBox();
            vBox.setSpacing(10);
            vBox.setBackground(Background.EMPTY);
            vBox.getChildren().addAll(progressIndicator,label);
    
            Scene scene = new Scene(vBox);
            scene.setFill(null);
            dialogStage.setScene(scene);
    
            Thread inner = new Thread(task);
            inner.start();
    
            task.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
                public void handle(WorkerStateEvent event) {
                    dialogStage.close();
                }
            });
    
            logger.info("UI");
        }
    
        public void activateProgressBar() {
            dialogStage.show();
        }
    
        public Stage getDialogStage(){
            return dialogStage;
        }
    
        public void cancelProgressBar() {
            dialogStage.close();
        }
    }
    

    相关文章:

    展开全文
  • 无限期等待外壳应用程序完成下面的代码示例启动另一个应用程序(本例中是 Notepad),并无限期等待应用程序关闭。 //How to Wait for a Shelled Process to Finish //Get the path to the system folder. string ...

    无限期等待外壳应用程序完成

    下面的代码示例启动另一个应用程序(本例中是 Notepad),并无限期等待该应用程序关闭。

    为外壳应用程序设置超时

    下面的代码示例为外壳应用程序设置了超时。示例中的超时设置为 5 秒。在测试中您可能希望调整此数字(以毫秒计)。
    展开全文
  • 在设置-应用里清除google play商店的缓存数据 例 Google play 一直等待下载?解决方案如此简单!-知乎 取消google play的自动更新,以及在菜单“我的应用与游戏-已安装的应用”里取消其他下载任务。例 解决 Google...

    安装project sekai时遇到的问题,点了“安装”后一直提示“等待中”,没法下载。

    网上大致有两种做法:

    1. 在设置-应用里清除google play商店的缓存和数据 例 Google play 一直等待下载?解决方案如此简单!-知乎
    2. 取消google play的自动更新,以及在菜单“我的应用与游戏-已安装的应用”里取消其他下载任务。例 解决 Google Play 「正在等待下载」的问题

    这可能是google play商店自己的bug。上面两种方法没有效果,不过我还是意外解决了。我是这样做的:

    先清除了数据和缓存,没用;在“已安装的应用”里没有正在下载的其他任务,也没有打开自动更新。

    但是在“可更新”里有两个待更新的任务。参照做法2,的确是需要关闭更新的。

    出于好奇,我点了“全部更新”,发现它们两个也开始“等待中”[捂脸]。就把它们两个任务再取消掉。

    然后progect sekai就开始正常下载了。

    也许是网络问题吧[无奈]。

    下午补充:由于一些原因我卸载了并重新安装,发现又变成“等待中”了。试了上面的方法发现行不通,注意到,因为地区限制的原因我用的日本的线路,关掉线路后就又正常下载了。

    嘛。google的程序员也是程序员。
    图源网络

    展开全文
  • Selenium中的隐式等待和显式等待

    千次阅读 2018-07-24 17:17:38
    1. 为什么我们需要在selenium中等待? 2. 隐瞒等待 3. 明确等待 4. 流利的等待 为什么我们需要在Selenium中等待? 大多数Web应用程序都是使用AjaxJavascript开发的。当浏览器加载页面时,我们想要...

    Selenium中,“等待”在执行测试中起着重要作用。在本文中,您将学习Selenium中“隐式”和“显式”等待的各个方面。

    在本文中,您将学习 -

    1. 为什么我们需要在selenium中等待?

    2. 隐瞒等待

    3. 明确等待

    4. 流利的等待

    为什么我们需要在Selenium中等待?

    大多数Web应用程序都是使用Ajax和Javascript开发的。当浏览器加载页面时,我们想要与之交互的元素可能以不同的时间间隔加载。

    它不仅难以识别元素,而且如果元素未定位,它将抛出“ ElementNotVisibleException ”异常。使用Waits,我们可以解决此问题。

    让我们考虑一个场景,我们必须在测试中使用隐式和显式等待。假设隐式等待时间设置为20秒,显式等待时间设置为10秒。

    假设我们试图找到一个具有一些“ExpectedConditions ”(显式等待)的元素,如果该元素不在显式等待(10秒)定义的时间范围内,它将使用由隐式等待定义的时间帧(在抛出“ ElementNotVisibleException ” 之前20秒)。

    Selenium Web驱动程序等待

    1. 隐含的等待
    2. 明确等待

    隐含的等待

    Selenium Web Driver借用了Watir隐式等待的想法。

    隐式等待将告诉Web驱动程序在它抛出“No Such Element Exception”之前等待一定的时间。默认设置为0.一旦我们设置了时间,Web驱动程序将在抛出异常之前等待该时间。

    在下面的示例中,我们声明了一个隐含的等待,时间范围为10秒。这意味着如果元素在该时间范围内不位于网页上,则会引发异常。

    声明隐式等待:

    语法

    driver.manage().timeouts().implicitlyWait(TimeOut, TimeUnit.SECONDS);
    package guru.test99;
    import java.util.concurrent.TimeUnit;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.testng.annotations.Test;
    public class AppTest {
    	
    	protected WebDriver driver;
    	@Test
    	public void guru99tutorials() throws InterruptedException 
    	{
    	System.setProperty ("webdriver.chrome.driver",".\\chromedriver.exe" );
    	driver = new ChromeDriver(); 
    	driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS) ;
    	String eTitle = "Demo Guru99 Page";
    	String aTitle = "" ;
    	// 启动Chrome并将其重定向到基本网址
    	driver.get("http://demo.guru99.com/test/guru99home/" );
    	//最大化浏览器窗口
    	driver.manage().window().maximize() ;
    	//获取标题的实际值
    	aTitle = driver.getTitle();
    	//将实际标题与预期标题进行比较
    	if (aTitle.equals(eTitle))
    	{
    	System.out.println( "Test Passed") ;
    	}
    	else {
    	System.out.println( "Test Failed" );
    	}
    	//关闭浏览器
    	driver.close();
    }
    }

    代码说明

    在上面的例子中,

    考虑以下代码:

    driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS) ;

    隐式等待将接受2个参数,第一个参数将接受时间作为整数值,第二个参数将接受时间测量,包括SECONDS,MINUTES,MILISECOND,MICROSECONDS,NANOSECONDS,DAYS,HOURS等。

     

    明确等待

    显式等待用于告诉Web驱动程序在抛出“ ElementNotVisibleException ”异常之前等待某些条件(预期条件)或超过最大时间。

    显式等待是一种智能的等待,但它只能应用于指定的元素。显式等待提供比隐式等待更好的选项,因为它将等待动态加载的Ajax元素。

    一旦我们声明显式等待,我们必须使用“ ExpectedCondtions ”,或者我们可以配置我们想要使用Fluent Wait检查条件的频率。这些天在实现我们使用Thread.Sleep()时通常不建议使用

    在下面的示例中,我们创建引用等待“ WebDriverWait ”类并使用“ WebDriver ”引用进行实例化,并且我们给出的最大时间帧为20秒。

    句法:

    WebDriverWait wait = new WebDriverWait(WebDriverRefrence,TimeOut);
    package guru.test99;
    
    import java.util.concurrent.TimeUnit;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;
    import org.testng.annotations.Test;
    
    public class AppTest2 {
    	protected WebDriver driver;
    	@Test
    	public void guru99tutorials() throws InterruptedException 
    	{
    	System.setProperty ("webdriver.chrome.driver",".\\chromedriver.exe" );
    	driver = new ChromeDriver(); 
    	WebDriverWait wait=new WebDriverWait(driver, 20);
    	String eTitle = "Demo Guru99 Page";
    	String aTitle = "" ;
    	// 启动Chrome并将其重定向到Base URL
    	driver.get("http://demo.guru99.com/test/guru99home/" );
    	//最大化浏览器窗口
    	driver.manage().window().maximize() ;
    	//获取标题的实际值
    	aTitle = driver.getTitle();
    	//将实际标题与预期标题进行比较
    	if (aTitle.contentEquals(eTitle))
    	{
    	System.out.println( "Test Passed") ;
    	}
    	else {
    	System.out.println( "Test Failed" );
    	}
    	WebElement guru99seleniumlink;
    	guru99seleniumlink= wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath( "/html/body/div[1]/section/div[2]/div/div[1]/div/div[1]/div/div/div/div[2]/div[2]/div/div/div/div/div[1]/div/div/a/i")));
    	guru99seleniumlink.click();
    	}
    	
    }

    代码说明

    考虑以下代码:

    WebElement guru99seleniumlink;
    guru99seleniumlink= wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(                   "/html/body/div[1]/section/div[2]/div/div[1]/div/div[1]/div/div/div/div[2]/div[2]/div/div/div/div/div[1]/div/div/a/i")));
     	guru99seleniumlink.click();

    在上面的示例中,等待“ WebDriverWait ”类或“ ExpectedConditions ”中定义的时间量,以先发生者为准。

    上面的Java代码声明我们正在等待网页上“ WebDriverWait ”类中定义的20秒时间帧的元素,直到满足“ ExpectedConditions ”并且条件为“ visibilityofElementLocated ”。

    以下是可以在显式等待中使用的预期条件

    ·  alertIsPresent()

    ·  elementSelectionStateToBe()

    ·  elementToBeClickable()

    ·  elementToBeSelected()

    ·  frameToBeAvaliableAndSwitchToIt()

    ·  invisibilityOfTheElementLocated()

    ·  invisibilityOfElementWithText()

    ·  presenceOfAllElementsLocatedBy()

    ·  presenceOfElementLocated()

    ·  textToBePresentInElement()

    ·  textToBePresentInElementLocated()

    ·  textToBePresentInElementValue()

    ·  titleIs()

    ·  titleContains()

    ·  visibilityOf()

    ·  visibilityOfAllElements()

    ·  visibilityOfAllElementsLocatedBy()

    ·  visibilityOfElementLocated()

    流利的等待

    流畅的等待用于告诉Web驱动程序等待条件,以及在抛出“ElementNotVisibleException”异常之前我们想要检查条件的频率

    频率:设置具有时间范围的重复循环,以定期验证/检查条件

    让我们考虑一个场景,其中元素以不同的时间间隔加载。如果我们声明显式等待20秒,该元素可能会在10秒,20秒甚至更长时间内加载。在抛出异常之前它会等到指定的时间。在这种情况下,流畅的等待是理想的等待使用,因为这将尝试以不同的频率找到元素,直到它找到它或最终的计时器用完为止。

    句法:

    Wait wait = new FluentWait(WebDriver reference)
    .withTimeout(timeout, SECONDS)
    .pollingEvery(timeout, SECONDS)
    .ignoring(Exception.class);
    package guru.test99;
    
    import org.testng.annotations.Test;
    import java.util.NoSuchElementException;
    import java.util.concurrent.TimeUnit;
    import java.util.function.Function;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.FluentWait;
    import org.openqa.selenium.support.ui.Wait;
    import org.openqa.selenium.support.ui.WebDriverWait;
    import org.testng.annotations.Test;
    
    public class AppTest3 {
    	protected WebDriver driver;
    	@Test
    	public void guru99tutorials() throws InterruptedException 
    	{
    	System.setProperty ("webdriver.chrome.driver",".\\chromedriver.exe" );
    	String eTitle = "Demo Guru99 Page";
    	String aTitle = "" ;
    	driver = new ChromeDriver();
    	// 启动Chrome并将其重定向到Base URL 
    	driver.get("http://demo.guru99.com/test/guru99home/" );
    	//最大化浏览器窗口
    	driver.manage().window().maximize() ;
    	//获取标题的实际值
    	aTitle = driver.getTitle();
    	//将实际标题与预期标题进行比较
    	if (aTitle.contentEquals(eTitle))
    	{
    	System.out.println( "Test Passed") ;
    	}
    	else {
    	System.out.println( "Test Failed" );
    		}
    	
    	Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)							
    			.withTimeout(30, TimeUnit.SECONDS) 			
    			.pollingEvery(5, TimeUnit.SECONDS) 			
    			.ignoring(NoSuchElementException.class);
    	WebElement clickseleniumlink = wait.until(new Function<Webdriver, WebElement>(){
    	
    		public WebElement apply(WebDriver driver ) {
    			return driver.findElement(By.xpath("/html/body/div[1]/section/div[2]/div/div[1]/div/div[1]/div/div/div/div[2]/div[2]/div/div/div/div/div[1]/div/div/a/i"));
    		}
    	});
    	//点击selenium链接
    	clickseleniumlink.click();
    	//关闭浏览器
    	driver.close() ;
    	}
    }

    代码说明

    考虑以下代码:

    Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)							
    	.withTimeout(30, TimeUnit.SECONDS) 			
    	.pollingEvery(5, TimeUnit.SECONDS) 			
    	.ignoring(NoSuchElementException.class);

    在上面的例子中,我们通过忽略“ NoSuchElementException ” 来声明一个流畅的等待,超时为30秒,频率设置为5秒。

    考虑以下代码:

    public WebElement apply(WebDriver driver ) {
    	return 		driver.findElement(By.xpath("/html/body/div[1]/section/div[2]/div/div[1]/div/div[1]/div/div/div/div[2]/div[2]/div/div/div/div/div[1]/div/div/a/i"));
    }	

    我们创建了一个新功能来识别页面上的Web元素。(例如:这里的Web元素只不过是网页上的selenium链接)。

    频率设置为5秒,最大时间设置为30秒。因此,这意味着它将每隔5秒检查网页上的元素,最长时间为30秒。如果元素位于此时间范围内,它将执行操作,否则将抛出“ ElementNotVisibleException ”

    隐式等待与显式等待的区别

     

    隐含的等待

    明确等待

    • 隐式等待时间应用于脚本中的所有元素
    • 显式等待时间仅适用于我们想要的那些元素
    • 在隐等待,我们需要指定元素的“ExpectedConditions”被定位
    • 在显式等待中,我们需要在要定位的元素上指定“ExpectedConditions”
    • 建议在使用隐式等待中指定的时间帧定位元素时使用
    • 建议在元素花费很长时间加载时使用,也用于验证元素的属性,如(visibilityOfElementLocated,elementToBeClickable,elementToBeSelected)


    结论:

    隐式,显式流利等待selenium中使用的不同等待。这些等待的使用完全基于以不同时间间隔加载的元素。在测试我们的应用程序或构建我们的框架时,始终不建议使用Thread.Sleep()

    如果你需要更多的selenium自动化的相关知识,欢迎继续关注我!当然你也可以加入我的群:175317069,一起进行学习交流,不仅仅只有自动化哦~

    展开全文
  • adb 打开和关闭应用

    万次阅读 2017-11-23 20:36:19
    这个命令可以启动Activity、打开或关闭进程、发送广播等操作。 am命令格式如下 adb shell am command>1 1、start [options] 根据Intent 启动Activity options参数如下: -D:开启
  • Windows10关机时出现 等待应用程序响应 / ETDCtrlHelper 影响关机 后来想想,不是ETDCtrlHelper的问题,毕竟只是个触控板相关的软件,而且关机时也会有其他的进程等待结束 下面是正文: 百度知道找到的方法 百度知道...
  • 应用中经常会用到一些费时的操作,需要用户进行等待,比如加载网页内容…… 这时候就需要一个提示来告诉用户程序正在执行,并没有假死或者真死……囧…… 而ProgressBar、ProgressDialog等就是专门干这个的。 ...
  • 在Selenium中为什么需要等待? 在现在很多软件产品为了加强前端的效果,采取了大量的AJAX、Javascript Jquery技术,很多窗体内的数据,需要等待一会,才能加载完数据,才能出现一些元素,driver才能操作这些元素...
  • 打开应用程序很容易,比如要打开firefox浏览器,我们可以在终端中输入命令: firefox &amp; 最后加‘&...’的目的是让应用firefox...关闭应用 ps是显示当前状态处于running的进程,grep表示在这些里搜索...
  • Google play谷歌商店一直正在等待下载?

    万次阅读 多人点赞 2019-10-07 15:22:57
    Google play商店一直正在等待下载? 1,打开手机里的设置(不是google play里的设置) 2,应用 3,搜索到google play 4,点商店,然后下方清除所有能清除的。 额外:miui关迅雷加速办法: 手机待机主页上滑调出搜索...
  • 您还可以管理iOS应用程序,当您导入设备上不存在的应用程序的数据设置时,iMazing将自动下载(从App Store)并安装应用程序。以下iMazing备份恢复iOS应用程序的数据的教程将适用任何想要轻松备份恢复其应用的...
  • 方法就可以关闭应用程序,释放掉资源。 WPF里Application类没有该方法,但是有一个Exit的事件驱动,在WPF应用程序里面关闭程序讲究很多: 在WPF应用程序的关闭是有ShutdownMode属性设置,具有3中枚举类型的值...
  • 系统和应用监控指标

    千次阅读 2019-03-15 20:08:58
    负载问题之前说过系统负载不超过3,我这里接近5的时候直接应用停顿了,所有的连接都断了 2019-03-15 19:35:03.322 WARN 108710 — [LI-WORKER-5-T-6] c.j.j.g.t.AbstractTCPClientTransport : [JSF-22114]No...
  • bat脚本实现打开关闭exe应用

    万次阅读 2019-08-24 14:27:41
    bat脚本要打开有空格的路径,start后面必须加引号,exe路径也要加引号 ...:等待10秒 :ping 127.0.0.1 -n 10 :杀死进程 taskkill /f /im erwin.exe echo ------------如果大家喜欢我的博客...
  • 思考:为什么上图中的A在TIME-WAIT状态必须等待2MSL时间呢? 第一,为了保证A发送的最后一个ACK报文能够到达B。这个ACK报文段有可能丢失,因而使处在LAST-ACK状态的B收不到对已发送的FIN+ACK报文段的确认。B会超时重...
  • python启动应用程序终止应用程序

    万次阅读 2018-01-16 11:10:31
    python启动应用程序终止应用程序 1. 目的 每天上班,工作需要,电脑上需要每天开机启动一些软件,下班时候,需要关掉一些软件。一个一个打开和关闭貌似是很繁琐的,于是乎,这个脚本产生了。 2. 环境 ...
  • WPF关闭应用程序方法

    千次阅读 2010-05-17 16:33:00
    很多人认为关闭应用程序应该很简单,例如WindowsForm里一个Application.Exit();方法就可以解决问题,但在WPF里面可别滥用,因为WPF里Application类没有该方法,倒是有一个Exit的事件驱动,在WPF应用程序里面关闭程序...
  • 使用HBuilder打包安卓应用和苹果应用

    千次阅读 2017-07-06 22:29:08
    使用HBuilder打包安卓应用和苹果应用 正常情况我们学习开发安卓应用或苹果手机应用时,都需要去学习相应的语言、结构、设计模式之类的,但如果你有前端开发的经验的话,那使用HBuilder这个软件将会轻松许多,话不多...
  • 在项目中遇到对话框关闭或者取消后,再次打开验证错误或者表单内容依然存在的效果,如下: 这种用户体验显然不好,那么如何解决这种问题呢? 第一种方法简单粗暴,就是在dialog对话框添加v-if,下次打开对话框...
  • 避免在自动化过程中显示对话框 按 F5 键生成并运行应用程序。 对话框出现后,单击运行。 该程序将使 Word 自动运行,添加一个包含一些文本的新文档,... 等待 5 秒钟,注意将以编程方式关闭该对话框,并且会创建 C
  • 应用

    千次阅读 2018-01-16 11:18:25
    应用协议原理在给定的一对进程之间的通信会话中,发起通信(即在该会话开始时与其他进程联系)的进程被标示客户机,在会话开始时等待联系的进程是服务器。 进程通过一个称为套接字的软件接口在网络上发送接收...
  • WPF 自定义的等待对话框。弹出、关闭、进度。 等待对话框关闭时的通知。。。经过实际应用的。
  • 为应用程序池“DefaultAppPool”提供服务的进程关闭时间
  • 通常创建一个名rc.local的脚本文件, 将所有要在系统引导过程中启动的用户应用写入该脚本文件中. 该脚本文件可以在/etc/inittab文件中被调用, 通常是在所有系统应用和服务启动后, 在用户登录被允许之前被调用....
  • 输入“ sfc /scannow”,然后按回车,就开始扫描了 扫描的时间比较长,需要耐心等待 成功之后的页面 然后再去打开印象笔记,就可以打开了 具体是因为什么原因造成的这个,现在还不太清除,等之后有了明确的答案再...
  • 什么是2MSL        MSL是Maximum Segment Lifetime英文的缩写,中文可以译“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。因为tcp...
  • 它是一个通用的资源管理系统,可上层应用提供统一的资源管理调度,它的引入集群在利用率、资源统一管理数据共享等方面带来了巨大好处。 YARN的基本设计思想是将Hadoop 1.0中的JobTracker拆分成了两个独立...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 372,784
精华内容 149,113
关键字:

为什么关闭应用和等待