问题标签 [program-flow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1279 浏览

user-interface - GUI 和游戏程序流程与 Web 程序相比如何

我已经开发 Web 应用程序有一段时间了,并且已经涉足 GUI 和游戏应用程序开发。

在 Web 应用程序(对我来说是 php)中,向文件发出请求,该文件包含将信息处理到内存中的所有必要文件,然后每个请求的流程从上到下。(主要)

我知道对于游戏来说,动作发生在游戏循环中,但是游戏的所有不同元素是如何分层到单个循环中的(菜单系统、gui、加载资产和 3d 世界)并不断加载和卸载某些事物。

GUI程序也是如此,我相信存在某种“应用程序循环”。

大多数项目是否被调用到内存中然后被访问,这些项目是否在需要时链接并加载到内存中?

帮助我更快地开发 Web 应用程序的是当我了解程序的流程时,它不必详细,只需大致的想法或伪代码。

0 投票
4 回答
180 浏览

c# - 创建取消方案

我有一个程序可以分析源代码。它可以递归遍历一个目录找到所有项目,然后递归遍历项目找到所有源代码。

我想创建一个取消进程按钮,它允许用户停止代码解析。我在后台工作人员中运行代码解析。我希望能够观看取消事件。

问题是弄清楚如何编辑我的代码,以便它会检查该项目并返回到 GUI。解析过程深入了几个方法。

在一个小得多的过程中,我成功地使用了一个线程安全的单例,它有一个布尔值,表示是否已请求取消,并在它运行的地方停止循环。

将此取消请求处理到我的代码中的最佳方法是什么?

编辑:这是一个想法,灵感来自约翰桑德斯的回答。

如果我在我的处理线程中运行一个后台线程来监视 Cancel Singleton 的变化,然后从该进程中抛出一个异常怎么办?这似乎是一种很好的做法? 这不能按预期工作

编辑 2:John Saunders 的回答似乎是目前最好的。当 Singleton 现在为真时,我只会抛出我自己的异常。我会等着看是否提出任何其他解决方案

0 投票
10 回答
2650 浏览

c - 在 C 中中断程序流

我有一个循环运行,每次迭代都会增加一个变量的值,我希望能够按键盘上的一个键来停止循环并报告变量的最终值。问题是,我不知道如何在 C 中做到这一点。我觉得很愚蠢,因为我似乎忽略了一些非常简单易行的方法,但是我尝试的一切都会停止循环,直到我按下一个键键盘,这基本上与我想要的完全相反。

基本上我想做的是这样的:

p>

那有意义吗?无论如何,有关如何在 C 中执行此操作的任何提示?

0 投票
5 回答
2142 浏览

objective-c - 如何找出方法或函数的调用者是谁?

我想编写一个调试函数或方法来帮助打印有用的信息。当它被调用时,我需要:

  • 调用对象的内存地址(如果被对象调用)
  • 调用者的方法签名(或方法的名称),或函数的名称
  • 拥有该方法或函数的类名

是否有可能在不传递一大堆参数的情况下获取这些信息?

我想做类似的东西:

然后进入每个方法和功能,并帮助打印出有关正在发生的事情的有用信息。

0 投票
1 回答
186 浏览

.net - 如何使互斥锁不递归

我运行下面的代码,期望在我第二次锁定互斥锁时锁定流。运行它两次后,我意识到它可以多次锁定(假设在同一个线程中)而不会停止。我该如何改变这种行为?

0 投票
2 回答
121 浏览

java - 确认程序流程

有人可以判断下面的代码是否可以正常工作吗?

0 投票
3 回答
6065 浏览

java - 在 Java 中访问内部类的包含类

这就是我现在正在做的事情。有没有更好的方法来访问超类?

我正在使用 Google Web Toolkit 进行编程,但我认为这确实是一个通用的 Java 问题。

0 投票
12 回答
1051 浏览

java - Java 语言约定;获取器/设置器

在自己的类中访问变量时首选什么;“e.number”还是“e.getNumber()”?

编辑
我认为最重要的问题是:编译器是否知道您调用的方法是 getter 或 setter。所以,将e.setNumber(5);尽可能快e.number = 5;

0 投票
12 回答
9578 浏览

language-agnostic - 编程风格:如果不满足守卫条件,是否应该提前返回?

我有时想知道的一件事是下面显示的两种风格中哪一种更好(如果有的话)?如果没有满足保护条件,是立即返回更好,还是只在满足保护条件时才做其他事情?

为了论证,请假设保护条件是一个返回布尔值的简单测试,例如检查元素是否在集合中,而不是通过抛出异常可能影响控制流的东西。还假设方法/函数足够短,不需要编辑器滚动。

0 投票
5 回答
246 浏览

c++ - C++ 程序流程:对象中的套接字和主函数

关于使用套接字的 C++ 程序流,我有一个相当棘手的问题。

基本上我所拥有的是:一个简单的命令行套接字服务器程序,它在套接字上侦听并一次接受一个连接。当该连接丢失时,它将打开以进行进一步的连接。

该套接字通信系统包含在一个类中。该类完全能够接收连接并将接收到的数据镜像到客户端。但是,该类使用非面向对象的 UNIX 套接字。

我的问题是在我的 main() 函数中,我有一行 - 创建该对象实例的那一行。然后对象初始化并等待。但是一旦获得连接,对象的初始化函数就会返回,当这种情况发生时,程序就会退出。在程序退出之前,我如何以某种方式等到该对象被删除?

概括:

  1. main() 创建对象的实例
  2. 对象监听
  3. 收到连接
  4. 对象的初始化函数返回
  5. main() 退出 (!)

我想要的是 main() 在退出之前以某种方式延迟,直到该对象完成它正在做的事情(也就是它会删除自己)。

有什么想法吗?