处理程序堆栈溢出?!?!

编程入门 行业动态 更新时间:2024-10-24 05:17:07
本文介绍了处理程序堆栈溢出?!?!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

请帮忙! 我在一个类中有一个处理程序,可以处理表格中的列是否被修改为,因此: dtWhatif = dsOp.Tables(" whatif") AddHandler dtWhatif.ColumnChanged,New DataColumnChangeEventHandler(AddressOf Whatif_Changed) 测试时,我收到一个错误:类型未处理的异常 'System.dll中出现'System.StackOverflowException'' 所以我放入一个调试语句来查看堆栈溢出的原因。这个 处理程序被称为4082次!我所做的只是更改数据网格的一个 单元格中的值! 为什么?!为什么?! Tom

Please help! I have a handler in a class that handles when a column in a table is modified, as such: dtWhatif = dsOp.Tables("whatif") AddHandler dtWhatif.ColumnChanged, New DataColumnChangeEventHandler(AddressOf Whatif_Changed) When testing this, I got an error: An unhandled exception of type ''System.StackOverflowException'' occurred in system.dll So I put a debug statement in to see why the stack is overflowing. This handler was called 4082 times! All I did was change the value in one cell of a datagrid! Why?! Why?! Tom

推荐答案

> dtWhatif = dsOp.Tables(" whatif") > dtWhatif = dsOp.Tables("whatif") AddHandler dtWhatif.ColumnChanged,New DataColumnChangeEventHandler(AddressOf Whatif_Changed) AddHandler dtWhatif.ColumnChanged, New DataColumnChangeEventHandler(AddressOf Whatif_Changed)

在Whatif_Changed中会发生什么?

What happens in Whatif_Changed?

现在,它只是调用并清空函数。我只是测试了 处理程序,发现它没有按预期工作。 Tom Chris Dunaway写道: Right now, it just calls and empty function. I was just testing the handler, and found it doesn''t work as expected. Tom Chris Dunaway wrote: dtWhatif = dsOp.Tables(" whatif") AddHandler dtWhatif.ColumnChanged,New DataColumnChangeEventHandler(AddressOf Whatif_Changed) dtWhatif = dsOp.Tables("whatif") AddHandler dtWhatif.ColumnChanged, NewDataColumnChangeEventHandler(AddressOf Whatif_Changed)

Whatif_Changed会发生什么?

What happens in Whatif_Changed?

I刚尝试在事件处理程序中注释掉对其他函数的调用。你猜怎么着?没问题。如果处理程序调用另一个函数,我只得到堆栈 重载。这不是一个好的的事情,因为我需要能够在 列发生变化时调用多个函数。有什么建议吗? Tom Chris Dunaway写道: I just tried commenting out the call to the other function from within the event handler. Guess what? No problem. I only get the stack overload if the handler calls another function. This is not a good thing, because I need to be able to call several functions when the column has changed. Any suggestions? Tom Chris Dunaway wrote: dtWhatif = dsOp.Tables(" whatif") AddHandler dtWhatif.ColumnChanged,New DataColumnChangeEventHandler(AddressOf Whatif_Changed) dtWhatif = dsOp.Tables("whatif") AddHandler dtWhatif.ColumnChanged, NewDataColumnChangeEventHandler(AddressOf Whatif_Changed)

会发生什么在Whatif_Changed?

What happens in Whatif_Changed?

更多推荐

处理程序堆栈溢出?!?!

本文发布于:2023-11-09 09:55:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1572076.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:堆栈   程序

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!