同一AppDomain内的SharpGL的FrameBuffer会相互影响?

同一AppDomain内的SharpGL的FrameBuffer会相互影响?

今天做一个试验时,偶然发现了这样一个问题。

以SharpGL的示例项目SimpleDrawingSample为例。

给FormSimpleDrawingSample窗口里的label1控件添加如下的点击事件代码。

1         private void label1_Click(object sender, EventArgs e)
2         {
3             (new FormSimpleDrawingSample()).Show();
4         }

就是再产生一个同主窗口一样的窗口。

然后,执行如下步骤。

  1. 双击启动SimpleDrawingSample.exe这个App。
  2. 再次双击,再启动一个App。
  3. 点击主窗口下方的文字,根据刚才写的代码,这会弹出一个和主窗口一样的窗口。
  4. 根据下图所示,缩放第一个App的主窗口。
  5. 你会发现下图所示的奇异情况。
  6. 稍微缩放下图所示左侧的窗口,一切恢复正常。

再试验几次,会发现同一AppDomainn内的SharpGL的FrameBuffer会相互影响?!

时间: 2024-08-15 02:17:37

同一AppDomain内的SharpGL的FrameBuffer会相互影响?的相关文章

打家劫舍(你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。)

示例 1: 输入: [1,2,3,1] 输出: 4 解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3). 偷窃到的最高金额 = 1 + 3 = 4 . 示例 2: 输入: [2,7,9,3,1] 输出: 12 解释: 偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1) 偷窃到的最高金额 = 1 + 3 = 4 通过 /** * * @param arr * @return * 运用动态规划解决该题:假

nginx编译安装和功能介绍

nginx介绍 nginx: engine X,是由1994年毕业于俄罗斯国立莫斯科鲍曼科技大学的同学为俄罗斯rambler.ru公司开发的,开发工作最早从2002年开始,第一次公开发布时间是2004年10月4日,版本号是0.1.0. nginx有商业版和社区版,2019年3月11日F5 Networks 6.7亿美元的价格收购. nginx 是免费,开源,高性能的HTTP和反向代理服务器,邮件代理服务器,通用TCP/UDP代理服务器. 解决C10K问题(10K Connections). 官网

.Net AppDomain详解(一)

AppDomain是CLR的运行单元,它可以加载Assembly.创建对象以及执行程序.AppDomain是CLR实现代码隔离的基本机制. 每一个AppDomain可以单独运行.停止:每个AppDomain有自己默认的异常处理: 一个AppDomain的运行失败不会影响到其他的AppDomain.CLR在被CLR Host(windows shell or InternetExplorer or SQL Server)加载后,要创建一个默认的AppDomain,程序的入口点(Main方法)就是在

System.AppDomain类详解(一)

AppDomain是CLR(Common Language Runtime:公共语言运行库),它可以加载Assembly.创建对象以及执行程序. AppDomain是CLR实现代码隔离的基本机制. 每一个AppDomain可以单独运行.停止:每个AppDomain都有自己默认的异常处理:一个AppDomain的运行失败不会影响到其他AppDomain的运行. CLR在被CLR Host(windows shell or InternetExplorer or SQL Server)加载后,会创建

第二节:AppDomain

CLR COM服务器初始化时,会创建一个AppDomain.AppDomain是一组程序集的逻辑容器.CLR初始化时创建的第一个AppDomain称为默认的AppDomain,这个默认的AppDomain只有在Windonws进程终止时才能被撤销. 除了默认的AppDomain,正在使用非托管Com接口方法或托管类型方法的一个宿主还可指示CLR创建额外的AppDomain,AppDomain唯一的作用就是进程隔离.下面总结了AppDomain的具体功能. 1.1.   一个AppDomain中的

AppDomain 详解(转)

AppDomain是CLR的运行单元,它可以加载Assembly.创建对象以及执行程序. AppDomain是CLR实现代码隔离的基本机制. 每一个AppDomain可以单独运行.停止:每个AppDomain有自己默认的异常处理: 一个AppDomain的运行失败不会影响到其他的AppDomain. CLR在被CLR Host(windows shell or InternetExplorer or SQL Server)加载后,要创建一个默认的AppDomain,程序的入口点 (Main方法)

第22章 CLR寄宿和AppDomain

寄宿允许使任务应用程序都能利用CLR的功能.寄宿(hosting)允许使任务应用程序都能利用CLR的功能.另外,寄宿还为应用程序提供了通过编程来进行自定义和扩展能力.AppDomain允许第三方的,不受信任的代码在一个现有的进程中运行,而CLR保证数据结构.代码和安全上下文不会被滥用或破坏. 22.1 CLR寄宿 CLR Hosting(CLR 宿主)的概念:初始启动.Net Application时,Windows进程的执行和初始化跟传统的Win32程序是一样的,执行的还是非托管代码,只不过由

C#里的应用程序域AppDomain

首先,描述一下AppDomain是什么:当一个程序集被执行时,系统就会自动为其创建一个AppDomain,每一个AppDomain属于某个进程,一个进程内可以有多个AppDomain:每个AppDomain创建时都有个默认的名称,该名称就是加载的程序集的名称(带扩展名.exe).同一windows 进程内的不同AppDomian之间可以互相共享资源,如:CLR,基本.NET类型,地址空间及线程.程序集在AppDomain中的调用:在同一进程内,如果不同的AppDomain调用同一Assembly

AppDOMain(摘录)

AppDomain是CLR的运行单元,它可以加载Assembly.创建对象以及执行程序. AppDomain是CLR实现 代码隔离 的基本机制. 每一个AppDomain可以单独运行.停止:每个AppDomain有自己默认的异常处理:一个AppDomain的运行失败不会影响到其他的AppDomain. CLR在被CLR Host(windows shell or InternetExplorer or SQL Server)加载后,要创建一个默认的AppDomain,程序的入口点(Main方法)